From: Simon McVittie Date: Sun, 31 May 2026 07:49:31 +0000 (+0100) Subject: New upstream version 50.2 X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~10^2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8d8a24f94f51a9dc3714e44bc0195b2d19b6674e;p=gnome-shell.git New upstream version 50.2 --- 8d8a24f94f51a9dc3714e44bc0195b2d19b6674e diff --cc data/theme/gnome-shell-dark.css index c854b323a,000000000..36eaa7ee2 mode 100644,000000..100644 --- a/data/theme/gnome-shell-dark.css +++ b/data/theme/gnome-shell-dark.css @@@ -1,3324 -1,0 +1,3324 @@@ +/* This stylesheet is generated, DO NOT EDIT */ +/* Copyright 2009, 2015 Red Hat, Inc. + * + * Portions adapted from Mx's data/style/default.css + * Copyright 2009 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU Lesser General Public License, + * version 2.1, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for + * more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + */ +/* Global Values */ +stage { + font-size: 1em; + color: #ffffff; } + +/* Common Stylings */ +#dash .dash-item-container .show-apps, +#dash .dash-item-container .overview-tile, +#dash .dash-item-container .grid-search-result { + background: none; + box-shadow: none; + border: none; + border-radius: 0; + padding: 0; + margin: 0; } + +.app-folder-dialog .overview-tile, .app-folder-dialog .grid-search-result, .app-folder, .overview-tile, .grid-search-result, #dash .dash-item-container .show-apps .overview-icon, +#dash .dash-item-container .overview-tile .overview-icon, +#dash .dash-item-container .grid-search-result .overview-icon, .list-search-result, .search-provider-icon, .switcher-list .item-box, .audio-device-selection-dialog .audio-selection-box .audio-selection-device { + border-radius: 16px; + padding: 6px; + spacing: 6px; + text-align: center; + transition-duration: 100ms; } + +.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item, .login-dialog .login-dialog-auth-list-item, .login-dialog-not-listed-button, .unlock-dialog-notifications-container .message StButton, +.unlock-dialog-notifications-container .unlock-dialog-notification-source StButton, .parental-controls-shield .parental-controls-shield-button, .unlock-dialog .button, +.unlock-dialog .icon-button, +.unlock-dialog .message-notification-group .message-collapse-button, +.message-notification-group .unlock-dialog .message-collapse-button, +.unlock-dialog .message .message-header .message-expand-button, +.message .message-header .unlock-dialog .message-expand-button, +.unlock-dialog .message .message-header .message-close-button, +.message .message-header .unlock-dialog .message-close-button, +.unlock-dialog .screenshot-ui-show-pointer-button, .unlock-dialog .login-dialog-auth-list-item, #LookingGlassDialog .notebook-tab, .screenshot-ui-show-pointer-button, .screenshot-ui-type-button, #LookingGlassDebugFlags .lg-debug-flag-button, #LookingGlassPropertyInspector .lg-obj-inspector-close-button, +#LookingGlassPropertyInspector .lg-obj-inspector-button, #LookingGlassDialog > #Toolbar .lg-toolbar-button, .icon-button, .login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button, .message-notification-group .message-collapse-button, .calendar .calendar-month-header .pager-button, .button { + border-radius: 8px; + padding: 3px 24px; + font-weight: bold; + transition: border-width 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + +.icon-button, .login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button, .screenshot-ui-show-pointer-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button, .message-notification-group .message-collapse-button, .calendar .calendar-month-header .pager-button, .button { + color: #ffffff; + background-color: st-mix(#ffffff, #36363a, 9%); } + .icon-button:focus, .login-dialog-button.a11y-button:focus, .login-dialog-button.cancel-button:focus, .login-dialog-button.switch-user-button:focus, .login-dialog-button.login-dialog-session-list-button:focus, .screenshot-ui-show-pointer-button:focus, .message .message-header .message-expand-button:focus, + .message .message-header .message-close-button:focus, .message-notification-group .message-collapse-button:focus, .calendar .calendar-month-header .pager-button:focus, .button:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#ffffff, #36363a, 9%), 5%); } + .icon-button:focus:hover, .login-dialog-button.a11y-button:focus:hover, .login-dialog-button.cancel-button:focus:hover, .login-dialog-button.switch-user-button:focus:hover, .login-dialog-button.login-dialog-session-list-button:focus:hover, .screenshot-ui-show-pointer-button:focus:hover, .message .message-header .message-expand-button:focus:hover, + .message .message-header .message-close-button:focus:hover, .message-notification-group .message-collapse-button:focus:hover, .calendar .calendar-month-header .pager-button:focus:hover, .button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #36363a, 9%), 4%), 5%); } + .icon-button:hover, .login-dialog-button.a11y-button:hover, .login-dialog-button.cancel-button:hover, .login-dialog-button.switch-user-button:hover, .login-dialog-button.login-dialog-session-list-button:hover, .screenshot-ui-show-pointer-button:hover, .message .message-header .message-expand-button:hover, + .message .message-header .message-close-button:hover, .message-notification-group .message-collapse-button:hover, .calendar .calendar-month-header .pager-button:hover, .button:hover { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #36363a, 9%), 4%); } + .icon-button:insensitive, .login-dialog-button.a11y-button:insensitive, .login-dialog-button.cancel-button:insensitive, .login-dialog-button.switch-user-button:insensitive, .login-dialog-button.login-dialog-session-list-button:insensitive, .screenshot-ui-show-pointer-button:insensitive, .message .message-header .message-expand-button:insensitive, + .message .message-header .message-close-button:insensitive, .message-notification-group .message-collapse-button:insensitive, .calendar .calendar-month-header .pager-button:insensitive, .button:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(st-mix(#ffffff, #36363a, 9%), 3%); } + .icon-button:selected, .login-dialog-button.a11y-button:selected, .login-dialog-button.cancel-button:selected, .login-dialog-button.switch-user-button:selected, .login-dialog-button.login-dialog-session-list-button:selected, .screenshot-ui-show-pointer-button:selected, .message .message-header .message-expand-button:selected, + .message .message-header .message-close-button:selected, .message-notification-group .message-collapse-button:selected, .calendar .calendar-month-header .pager-button:selected, .button:selected, .icon-button:active, .login-dialog-button.a11y-button:active, .login-dialog-button.cancel-button:active, .login-dialog-button.switch-user-button:active, .login-dialog-button.login-dialog-session-list-button:active, .screenshot-ui-show-pointer-button:active, .message .message-header .message-expand-button:active, + .message .message-header .message-close-button:active, .message-notification-group .message-collapse-button:active, .calendar .calendar-month-header .pager-button:active, .button:active { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #36363a, 9%), 9%); } + .icon-button:selected:hover, .login-dialog-button.a11y-button:selected:hover, .login-dialog-button.cancel-button:selected:hover, .login-dialog-button.switch-user-button:selected:hover, .login-dialog-button.login-dialog-session-list-button:selected:hover, .screenshot-ui-show-pointer-button:selected:hover, .message .message-header .message-expand-button:selected:hover, + .message .message-header .message-close-button:selected:hover, .message-notification-group .message-collapse-button:selected:hover, .calendar .calendar-month-header .pager-button:selected:hover, .button:selected:hover, .icon-button:active:hover, .login-dialog-button.a11y-button:active:hover, .login-dialog-button.cancel-button:active:hover, .login-dialog-button.switch-user-button:active:hover, .login-dialog-button.login-dialog-session-list-button:active:hover, .screenshot-ui-show-pointer-button:active:hover, .message .message-header .message-expand-button:active:hover, + .message .message-header .message-close-button:active:hover, .message-notification-group .message-collapse-button:active:hover, .calendar .calendar-month-header .pager-button:active:hover, .button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #36363a, 9%), 9%), 4%); } + .icon-button:selected:focus, .login-dialog-button.a11y-button:selected:focus, .login-dialog-button.cancel-button:selected:focus, .login-dialog-button.switch-user-button:selected:focus, .login-dialog-button.login-dialog-session-list-button:selected:focus, .screenshot-ui-show-pointer-button:selected:focus, .message .message-header .message-expand-button:selected:focus, + .message .message-header .message-close-button:selected:focus, .message-notification-group .message-collapse-button:selected:focus, .calendar .calendar-month-header .pager-button:selected:focus, .button:selected:focus, .icon-button:active:focus, .login-dialog-button.a11y-button:active:focus, .login-dialog-button.cancel-button:active:focus, .login-dialog-button.switch-user-button:active:focus, .login-dialog-button.login-dialog-session-list-button:active:focus, .screenshot-ui-show-pointer-button:active:focus, .message .message-header .message-expand-button:active:focus, + .message .message-header .message-close-button:active:focus, .message-notification-group .message-collapse-button:active:focus, .calendar .calendar-month-header .pager-button:active:focus, .button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #36363a, 9%), 9%), 5%); } + .icon-button:checked, .login-dialog-button.a11y-button:checked, .login-dialog-button.cancel-button:checked, .login-dialog-button.switch-user-button:checked, .login-dialog-button.login-dialog-session-list-button:checked, .screenshot-ui-show-pointer-button:checked, .message .message-header .message-expand-button:checked, + .message .message-header .message-close-button:checked, .message-notification-group .message-collapse-button:checked, .calendar .calendar-month-header .pager-button:checked, .button:checked { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #36363a, 9%), 8%); } + .icon-button:checked:hover, .login-dialog-button.a11y-button:checked:hover, .login-dialog-button.cancel-button:checked:hover, .login-dialog-button.switch-user-button:checked:hover, .login-dialog-button.login-dialog-session-list-button:checked:hover, .screenshot-ui-show-pointer-button:checked:hover, .message .message-header .message-expand-button:checked:hover, + .message .message-header .message-close-button:checked:hover, .message-notification-group .message-collapse-button:checked:hover, .calendar .calendar-month-header .pager-button:checked:hover, .button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #36363a, 9%), 8%), 4%); } + .icon-button:checked:active, .login-dialog-button.a11y-button:checked:active, .login-dialog-button.cancel-button:checked:active, .login-dialog-button.switch-user-button:checked:active, .login-dialog-button.login-dialog-session-list-button:checked:active, .screenshot-ui-show-pointer-button:checked:active, .message .message-header .message-expand-button:checked:active, + .message .message-header .message-close-button:checked:active, .message-notification-group .message-collapse-button:checked:active, .calendar .calendar-month-header .pager-button:checked:active, .button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #36363a, 9%), 8%), 9%); } + +.calendar .calendar-day-heading, .calendar .calendar-day, .calendar .calendar-month-header .calendar-month-label, .icon-button.flat, .flat.login-dialog-button.a11y-button, .flat.login-dialog-button.cancel-button, .flat.login-dialog-button.switch-user-button, .flat.login-dialog-button.login-dialog-session-list-button, .flat.screenshot-ui-show-pointer-button, .message .message-header .flat.message-expand-button, +.message .message-header .flat.message-close-button, .message-notification-group .flat.message-collapse-button, .calendar .calendar-month-header .pager-button, .button.flat { + color: #ffffff; + background-color: #36363a; } + .calendar .calendar-day-heading:focus, .calendar .calendar-day:focus, .calendar .calendar-month-header .calendar-month-label:focus, .icon-button.flat:focus, .flat.login-dialog-button.a11y-button:focus, .flat.login-dialog-button.cancel-button:focus, .flat.login-dialog-button.switch-user-button:focus, .flat.login-dialog-button.login-dialog-session-list-button:focus, .flat.screenshot-ui-show-pointer-button:focus, .message .message-header .flat.message-expand-button:focus, + .message .message-header .flat.message-close-button:focus, .message-notification-group .flat.message-collapse-button:focus, .calendar .calendar-month-header .pager-button:focus, .button.flat:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(54, 54, 58, 0.25), 5%); } + .calendar .calendar-day-heading:focus:hover, .calendar .calendar-day:focus:hover, .calendar .calendar-month-header .calendar-month-label:focus:hover, .icon-button.flat:focus:hover, .flat.login-dialog-button.a11y-button:focus:hover, .flat.login-dialog-button.cancel-button:focus:hover, .flat.login-dialog-button.switch-user-button:focus:hover, .flat.login-dialog-button.login-dialog-session-list-button:focus:hover, .flat.screenshot-ui-show-pointer-button:focus:hover, .message .message-header .flat.message-expand-button:focus:hover, + .message .message-header .flat.message-close-button:focus:hover, .message-notification-group .flat.message-collapse-button:focus:hover, .calendar .calendar-month-header .pager-button:focus:hover, .button.flat:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#36363a, 7%), 5%); } + .calendar .calendar-day-heading:hover, .calendar .calendar-day:hover, .calendar .calendar-month-header .calendar-month-label:hover, .icon-button.flat:hover, .flat.login-dialog-button.a11y-button:hover, .flat.login-dialog-button.cancel-button:hover, .flat.login-dialog-button.switch-user-button:hover, .flat.login-dialog-button.login-dialog-session-list-button:hover, .flat.screenshot-ui-show-pointer-button:hover, .message .message-header .flat.message-expand-button:hover, + .message .message-header .flat.message-close-button:hover, .message-notification-group .flat.message-collapse-button:hover, .calendar .calendar-month-header .pager-button:hover, .button.flat:hover { + color: #ffffff; + background-color: st-lighten(#36363a, 7%); } + .calendar .calendar-day-heading:insensitive, .calendar .calendar-day:insensitive, .calendar .calendar-month-header .calendar-month-label:insensitive, .icon-button.flat:insensitive, .flat.login-dialog-button.a11y-button:insensitive, .flat.login-dialog-button.cancel-button:insensitive, .flat.login-dialog-button.switch-user-button:insensitive, .flat.login-dialog-button.login-dialog-session-list-button:insensitive, .flat.screenshot-ui-show-pointer-button:insensitive, .message .message-header .flat.message-expand-button:insensitive, + .message .message-header .flat.message-close-button:insensitive, .message-notification-group .flat.message-collapse-button:insensitive, .calendar .calendar-month-header .pager-button:insensitive, .button.flat:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: #36363a; } + .calendar .calendar-day-heading:selected, .calendar .calendar-day:selected, .calendar .calendar-month-header .calendar-month-label:selected, .icon-button.flat:selected, .flat.login-dialog-button.a11y-button:selected, .flat.login-dialog-button.cancel-button:selected, .flat.login-dialog-button.switch-user-button:selected, .flat.login-dialog-button.login-dialog-session-list-button:selected, .flat.screenshot-ui-show-pointer-button:selected, .message .message-header .flat.message-expand-button:selected, + .message .message-header .flat.message-close-button:selected, .message-notification-group .flat.message-collapse-button:selected, .calendar .calendar-month-header .pager-button:selected, .button.flat:selected, .calendar .calendar-day-heading:active, .calendar .calendar-day:active, .calendar .calendar-month-header .calendar-month-label:active, .icon-button.flat:active, .flat.login-dialog-button.a11y-button:active, .flat.login-dialog-button.cancel-button:active, .flat.login-dialog-button.switch-user-button:active, .flat.login-dialog-button.login-dialog-session-list-button:active, .flat.screenshot-ui-show-pointer-button:active, .message .message-header .flat.message-expand-button:active, + .message .message-header .flat.message-close-button:active, .message-notification-group .flat.message-collapse-button:active, .calendar .calendar-month-header .pager-button:active, .button.flat:active { + color: #ffffff; + background-color: st-lighten(#36363a, 9%); } + .calendar .calendar-day-heading:selected:hover, .calendar .calendar-day:selected:hover, .calendar .calendar-month-header .calendar-month-label:selected:hover, .icon-button.flat:selected:hover, .flat.login-dialog-button.a11y-button:selected:hover, .flat.login-dialog-button.cancel-button:selected:hover, .flat.login-dialog-button.switch-user-button:selected:hover, .flat.login-dialog-button.login-dialog-session-list-button:selected:hover, .flat.screenshot-ui-show-pointer-button:selected:hover, .message .message-header .flat.message-expand-button:selected:hover, + .message .message-header .flat.message-close-button:selected:hover, .message-notification-group .flat.message-collapse-button:selected:hover, .calendar .calendar-month-header .pager-button:selected:hover, .button.flat:selected:hover, .calendar .calendar-day-heading:active:hover, .calendar .calendar-day:active:hover, .calendar .calendar-month-header .calendar-month-label:active:hover, .icon-button.flat:active:hover, .flat.login-dialog-button.a11y-button:active:hover, .flat.login-dialog-button.cancel-button:active:hover, .flat.login-dialog-button.switch-user-button:active:hover, .flat.login-dialog-button.login-dialog-session-list-button:active:hover, .flat.screenshot-ui-show-pointer-button:active:hover, .message .message-header .flat.message-expand-button:active:hover, + .message .message-header .flat.message-close-button:active:hover, .message-notification-group .flat.message-collapse-button:active:hover, .calendar .calendar-month-header .pager-button:active:hover, .button.flat:active:hover { + background-color: st-lighten(st-lighten(#36363a, 9%), 7%); } + .calendar .calendar-day-heading:selected:focus, .calendar .calendar-day:selected:focus, .calendar .calendar-month-header .calendar-month-label:selected:focus, .icon-button.flat:selected:focus, .flat.login-dialog-button.a11y-button:selected:focus, .flat.login-dialog-button.cancel-button:selected:focus, .flat.login-dialog-button.switch-user-button:selected:focus, .flat.login-dialog-button.login-dialog-session-list-button:selected:focus, .flat.screenshot-ui-show-pointer-button:selected:focus, .message .message-header .flat.message-expand-button:selected:focus, + .message .message-header .flat.message-close-button:selected:focus, .message-notification-group .flat.message-collapse-button:selected:focus, .calendar .calendar-month-header .pager-button:selected:focus, .button.flat:selected:focus, .calendar .calendar-day-heading:active:focus, .calendar .calendar-day:active:focus, .calendar .calendar-month-header .calendar-month-label:active:focus, .icon-button.flat:active:focus, .flat.login-dialog-button.a11y-button:active:focus, .flat.login-dialog-button.cancel-button:active:focus, .flat.login-dialog-button.switch-user-button:active:focus, .flat.login-dialog-button.login-dialog-session-list-button:active:focus, .flat.screenshot-ui-show-pointer-button:active:focus, .message .message-header .flat.message-expand-button:active:focus, + .message .message-header .flat.message-close-button:active:focus, .message-notification-group .flat.message-collapse-button:active:focus, .calendar .calendar-month-header .pager-button:active:focus, .button.flat:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#36363a, 9%), 5%); } + .calendar .calendar-day-heading:checked, .calendar .calendar-day:checked, .calendar .calendar-month-header .calendar-month-label:checked, .icon-button.flat:checked, .flat.login-dialog-button.a11y-button:checked, .flat.login-dialog-button.cancel-button:checked, .flat.login-dialog-button.switch-user-button:checked, .flat.login-dialog-button.login-dialog-session-list-button:checked, .flat.screenshot-ui-show-pointer-button:checked, .message .message-header .flat.message-expand-button:checked, + .message .message-header .flat.message-close-button:checked, .message-notification-group .flat.message-collapse-button:checked, .calendar .calendar-month-header .pager-button:checked, .button.flat:checked { + color: #ffffff; + background-color: st-lighten(#36363a, 8%); } + .calendar .calendar-day-heading:checked:hover, .calendar .calendar-day:checked:hover, .calendar .calendar-month-header .calendar-month-label:checked:hover, .icon-button.flat:checked:hover, .flat.login-dialog-button.a11y-button:checked:hover, .flat.login-dialog-button.cancel-button:checked:hover, .flat.login-dialog-button.switch-user-button:checked:hover, .flat.login-dialog-button.login-dialog-session-list-button:checked:hover, .flat.screenshot-ui-show-pointer-button:checked:hover, .message .message-header .flat.message-expand-button:checked:hover, + .message .message-header .flat.message-close-button:checked:hover, .message-notification-group .flat.message-collapse-button:checked:hover, .calendar .calendar-month-header .pager-button:checked:hover, .button.flat:checked:hover { + background-color: st-lighten(st-lighten(#36363a, 8%), 7%); } + .calendar .calendar-day-heading:checked:active, .calendar .calendar-day:checked:active, .calendar .calendar-month-header .calendar-month-label:checked:active, .icon-button.flat:checked:active, .flat.login-dialog-button.a11y-button:checked:active, .flat.login-dialog-button.cancel-button:checked:active, .flat.login-dialog-button.switch-user-button:checked:active, .flat.login-dialog-button.login-dialog-session-list-button:checked:active, .flat.screenshot-ui-show-pointer-button:checked:active, .message .message-header .flat.message-expand-button:checked:active, + .message .message-header .flat.message-close-button:checked:active, .message-notification-group .flat.message-collapse-button:checked:active, .calendar .calendar-month-header .pager-button:checked:active, .button.flat:checked:active { + background-color: st-lighten(st-lighten(#36363a, 8%), 9%); } + +.keyboard-brightness-level .button:checked, .quick-toggle:checked, .calendar .calendar-day.calendar-today, .icon-button.default, .default.login-dialog-button.a11y-button, .default.login-dialog-button.cancel-button, .default.login-dialog-button.switch-user-button, .default.login-dialog-button.login-dialog-session-list-button, .default.screenshot-ui-show-pointer-button, .message .message-header .default.message-expand-button, +.message .message-header .default.message-close-button, .message-notification-group .default.message-collapse-button, .calendar .calendar-month-header .default.pager-button, .button.default { + color: -st-accent-fg-color; + background-color: -st-accent-color; } + .keyboard-brightness-level .button:focus:checked, .quick-toggle:focus:checked, .calendar .calendar-day.calendar-today:focus, .icon-button.default:focus, .default.login-dialog-button.a11y-button:focus, .default.login-dialog-button.cancel-button:focus, .default.login-dialog-button.switch-user-button:focus, .default.login-dialog-button.login-dialog-session-list-button:focus, .default.screenshot-ui-show-pointer-button:focus, .message .message-header .default.message-expand-button:focus, + .message .message-header .default.message-close-button:focus, .message-notification-group .default.message-collapse-button:focus, .calendar .calendar-month-header .default.pager-button:focus, .button.default:focus { + color: -st-accent-fg-color; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + box-shadow: inset 0 0 0 2px st-transparentize(st-lighten(-st-accent-color, 30%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), -st-accent-color, 5%); } + .keyboard-brightness-level .button:focus:hover:checked, .quick-toggle:focus:hover:checked, .calendar .calendar-day.calendar-today:focus:hover, .icon-button.default:focus:hover, .default.login-dialog-button.a11y-button:focus:hover, .default.login-dialog-button.cancel-button:focus:hover, .default.login-dialog-button.switch-user-button:focus:hover, .default.login-dialog-button.login-dialog-session-list-button:focus:hover, .default.screenshot-ui-show-pointer-button:focus:hover, .message .message-header .default.message-expand-button:focus:hover, + .message .message-header .default.message-close-button:focus:hover, .message-notification-group .default.message-collapse-button:focus:hover, .calendar .calendar-month-header .default.pager-button:focus:hover, .button.default:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(-st-accent-color, 4%), 5%); } + .keyboard-brightness-level .button:hover:checked, .quick-toggle:hover:checked, .calendar .calendar-day.calendar-today:hover, .icon-button.default:hover, .default.login-dialog-button.a11y-button:hover, .default.login-dialog-button.cancel-button:hover, .default.login-dialog-button.switch-user-button:hover, .default.login-dialog-button.login-dialog-session-list-button:hover, .default.screenshot-ui-show-pointer-button:hover, .message .message-header .default.message-expand-button:hover, + .message .message-header .default.message-close-button:hover, .message-notification-group .default.message-collapse-button:hover, .calendar .calendar-month-header .default.pager-button:hover, .button.default:hover { + color: -st-accent-fg-color; + background-color: st-lighten(-st-accent-color, 4%); } + .keyboard-brightness-level .button:insensitive:checked, .quick-toggle:insensitive:checked, .calendar .calendar-day.calendar-today:insensitive, .icon-button.default:insensitive, .default.login-dialog-button.a11y-button:insensitive, .default.login-dialog-button.cancel-button:insensitive, .default.login-dialog-button.switch-user-button:insensitive, .default.login-dialog-button.login-dialog-session-list-button:insensitive, .default.screenshot-ui-show-pointer-button:insensitive, .message .message-header .default.message-expand-button:insensitive, + .message .message-header .default.message-close-button:insensitive, .message-notification-group .default.message-collapse-button:insensitive, .calendar .calendar-month-header .default.pager-button:insensitive, .button.default:insensitive { + color: st-transparentize(-st-accent-fg-color, 0.5); + background-color: st-darken(-st-accent-color, 3%); } + .keyboard-brightness-level .button:active:checked, .quick-toggle:active:checked, .calendar .calendar-day.calendar-today:active, .icon-button.default:active, .default.login-dialog-button.a11y-button:active, .default.login-dialog-button.cancel-button:active, .default.login-dialog-button.switch-user-button:active, .default.login-dialog-button.login-dialog-session-list-button:active, .default.screenshot-ui-show-pointer-button:active, .message .message-header .default.message-expand-button:active, + .message .message-header .default.message-close-button:active, .message-notification-group .default.message-collapse-button:active, .calendar .calendar-month-header .default.pager-button:active, .button.default:active { + color: -st-accent-fg-color; + background-color: st-lighten(-st-accent-color, 9%); } + .keyboard-brightness-level .button:active:hover:checked, .quick-toggle:active:hover:checked, .calendar .calendar-day.calendar-today:active:hover, .icon-button.default:active:hover, .default.login-dialog-button.a11y-button:active:hover, .default.login-dialog-button.cancel-button:active:hover, .default.login-dialog-button.switch-user-button:active:hover, .default.login-dialog-button.login-dialog-session-list-button:active:hover, .default.screenshot-ui-show-pointer-button:active:hover, .message .message-header .default.message-expand-button:active:hover, + .message .message-header .default.message-close-button:active:hover, .message-notification-group .default.message-collapse-button:active:hover, .calendar .calendar-month-header .default.pager-button:active:hover, .button.default:active:hover { + background-color: st-lighten(st-lighten(-st-accent-color, 9%), 4%); } + .keyboard-brightness-level .button:active:focus:checked, .quick-toggle:active:focus:checked, .calendar .calendar-day.calendar-today:active:focus, .icon-button.default:active:focus, .default.login-dialog-button.a11y-button:active:focus, .default.login-dialog-button.cancel-button:active:focus, .default.login-dialog-button.switch-user-button:active:focus, .default.login-dialog-button.login-dialog-session-list-button:active:focus, .default.screenshot-ui-show-pointer-button:active:focus, .message .message-header .default.message-expand-button:active:focus, + .message .message-header .default.message-close-button:active:focus, .message-notification-group .default.message-collapse-button:active:focus, .calendar .calendar-month-header .default.pager-button:active:focus, .button.default:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(-st-accent-color, 9%), 5%); } + +.popup-sub-menu .popup-menu-item, .popup-menu-item { + font-weight: normal; + spacing: 6px; + transition-duration: 100ms; + padding: 9px 12px; } + +#LookingGlassExtensions .lg-extension, #LookingGlassWindows .lg-window, .calendar, .datemenu-today-button, .quick-toggle-menu, .message, .events-button, +.world-clocks-button, +.weather-button { + border-radius: 12px; + padding: 0.818em; + margin: 4px; + background-color: #47474c; + box-shadow: 0 1px 2px 0 transparent; + border: 1px solid transparent; } + +.quick-toggle-menu, .message, .events-button, +.world-clocks-button, +.weather-button { + color: #ffffff; + background-color: #47474c; } + .quick-toggle-menu:hover, .message:hover, .events-button:hover, + .world-clocks-button:hover, + .weather-button:hover { + color: #ffffff; + background-color: st-lighten(#47474c, 4%); } + .quick-toggle-menu:active, .message:active, .events-button:active, + .world-clocks-button:active, + .weather-button:active { + color: #ffffff; + background-color: st-lighten(#47474c, 9%); } + .quick-toggle-menu:active:hover, .message:active:hover, .events-button:active:hover, + .world-clocks-button:active:hover, + .weather-button:active:hover { + background-color: st-lighten(st-lighten(#47474c, 9%), 4%); } + .quick-toggle-menu:active:focus, .message:active:focus, .events-button:active:focus, + .world-clocks-button:active:focus, + .weather-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#47474c, 9%), 5%); } + .quick-toggle-menu:focus, .message:focus, .events-button:focus, + .world-clocks-button:focus, + .weather-button:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), #47474c, 5%); } + .quick-toggle-menu:focus:hover, .message:focus:hover, .events-button:focus:hover, + .world-clocks-button:focus:hover, + .weather-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#47474c, 4%), 5%); } + .quick-toggle-menu:insensitive, .message:insensitive, .events-button:insensitive, + .world-clocks-button:insensitive, + .weather-button:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(#47474c, 3%); } + +.calendar, .datemenu-today-button { + border: 1px solid transparent !important; + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .calendar:insensitive, .datemenu-today-button:insensitive { + background-color: transparent !important; } + .calendar:hover, .datemenu-today-button:hover { + color: #ffffff; + background-color: st-lighten(#36363a, 7%); } + .calendar:active, .datemenu-today-button:active { + color: #ffffff; + background-color: st-lighten(#36363a, 9%); } + .calendar:active:hover, .datemenu-today-button:active:hover { + background-color: st-lighten(st-lighten(#36363a, 9%), 7%); } + .calendar:active:focus, .datemenu-today-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#36363a, 9%), 5%); } + .calendar:focus, .datemenu-today-button:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), #47474c, 5%); } + .calendar:focus:hover, .datemenu-today-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#47474c, 4%), 5%); } + .calendar:insensitive, .datemenu-today-button:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(#47474c, 3%); } + +.unlock-dialog .login-dialog-prompt-entry, .login-dialog .login-dialog-prompt-entry, .app-folder-dialog .folder-name-container .folder-name-entry, .search-entry, .lg-dialog StEntry, StEntry { + border-radius: 8px; + padding: 9px 9px; + selection-background-color: st-transparentize(-st-accent-color, 0.7); + selected-color: #ffffff; } + +StEntry { + background-color: #48484c; + color: rgba(255, 255, 255, 0.7); } + StEntry:hover { + background-color: #525256; + color: #ffffff; } + StEntry:focus { + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), #48484c, 5%); + color: #ffffff; } + StEntry:insensitive { + background-color: #414144; + color: rgba(255, 255, 255, 0.5); } + StEntry StLabel.hint-text { + color: rgba(255, 255, 255, 0.7); } + +.notification-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button { + font-weight: bold; + padding: 6px 12px; + border-radius: 8px; + color: #ffffff; + background-color: rgba(255, 255, 255, 0.15); } + .notification-button:focus, .message .message-header .message-expand-button:focus, + .message .message-header .message-close-button:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(255, 255, 255, 0.15), 5%); } + .notification-button:focus:hover, .message .message-header .message-expand-button:focus:hover, + .message .message-header .message-close-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(255, 255, 255, 0.3), 5%); } + .notification-button:hover, .message .message-header .message-expand-button:hover, + .message .message-header .message-close-button:hover { + color: #ffffff; + background-color: rgba(255, 255, 255, 0.3); } + .notification-button:active, .message .message-header .message-expand-button:active, + .message .message-header .message-close-button:active { + color: #ffffff; + background-color: rgba(255, 255, 255, 0.2); } + .notification-button:active:hover, .message .message-header .message-expand-button:active:hover, + .message .message-header .message-close-button:active:hover { + background-color: rgba(255, 255, 255, 0.2); } + .notification-button:active:focus, .message .message-header .message-expand-button:active:focus, + .message .message-header .message-close-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(255, 255, 255, 0.2), 5%); } + .notification-button:checked, .message .message-header .message-expand-button:checked, + .message .message-header .message-close-button:checked { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #36363a, 9%), 8%); } + .notification-button:checked:hover, .message .message-header .message-expand-button:checked:hover, + .message .message-header .message-close-button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #36363a, 9%), 8%), 4%); } + .notification-button:checked:active, .message .message-header .message-expand-button:checked:active, + .message .message-header .message-close-button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #36363a, 9%), 8%), 9%); } + .notification-button:insensitive, .message .message-header .message-expand-button:insensitive, + .message .message-header .message-close-button:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: rgba(255, 255, 255, 0.1); } + +.modal-dialog .modal-dialog-button-box .modal-dialog-button { + font-weight: bold; + padding: 12px; + border-radius: 12px; + color: #ffffff; + background-color: rgba(255, 255, 255, 0.1); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(255, 255, 255, 0.1), 5%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(255, 255, 255, 0.13), 5%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:hover { + color: #ffffff; + background-color: rgba(255, 255, 255, 0.13); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:active { + color: #ffffff; + background-color: rgba(255, 255, 255, 0.16); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:active:hover { + background-color: rgba(255, 255, 255, 0.19); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(255, 255, 255, 0.16), 5%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:checked { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #36363a, 9%), 8%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #36363a, 9%), 8%), 4%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #36363a, 9%), 8%), 9%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(st-mix(#ffffff, #36363a, 9%), 3%); } + +.dash-label, .window-caption, .screenshot-ui-tooltip { + background-color: rgba(0, 0, 0, 0.9); + border: 1px solid rgba(255, 255, 255, 0.1); + color: #ffffff; + border-radius: 999px; + padding: 6px 12px; + text-align: center; } + +/* General Typography */ +.unlock-dialog-clock .unlock-dialog-clock-date, .app-folder-dialog .folder-name-container .folder-name-label, .app-folder-dialog .folder-name-container .folder-name-entry, .search-statustext { + font-weight: 800; + font-size: 1.818em; } + +.conflicting-session-dialog-content .conflicting-session-dialog-title, .message-dialog-content .message-dialog-title, .message-notification-group .message-group-header .message-group-title, .datemenu-today-button .date-label { + font-weight: 800; + font-size: 1.364em; } + +.login-dialog .user-widget.horizontal .user-widget-label, +.unlock-dialog .user-widget.horizontal .user-widget-label, .quick-toggle-menu .header .title, .message-list .message-list-placeholder { + font-weight: 700; + font-size: 1.364em; } + +.parental-controls-shield .parental-controls-shield-button, .parental-controls-shield .parental-controls-shield-title, .login-dialog-auth-list-label, #LookingGlassDebugFlags .lg-debug-flags-header, #LookingGlassExtensions .lg-extensions-none, .word-suggestions, .bt-menu-placeholder.popup-menu-item, .restart-message, .polkit-dialog-user-layout .polkit-dialog-user-label, +.polkit-dialog-user-layout .polkit-dialog-user-root-label, .message-dialog-content .message-dialog-title.lightweight { + font-weight: 700; + font-size: 1.182em; } + +.login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label { + font-weight: 700; + font-size: 1em; } + +.quick-toggle-menu .header .subtitle, .app-menu .popup-inactive-menu-item:first-child > StLabel { + font-weight: 700; + font-size: 0.818em; } + +.lg-completions-text, .caps-lock-warning-label, .background-app-item .subtitle, .quick-toggle .quick-toggle-subtitle, .screenshot-ui-type-button .icon-label-button-container, .prompt-dialog .prompt-dialog-error-label, +.prompt-dialog .prompt-dialog-info-label, +.prompt-dialog .prompt-dialog-null-label, .run-dialog .run-dialog-description, .dialog-list .dialog-list-box .dialog-list-item .dialog-list-item-description, .message .message-header .message-header-content .event-time, .world-clocks-button .world-clocks-grid .world-clocks-timezone, .events-button .events-box .events-list .event-box .event-time { + font-weight: 400; + font-size: 0.818em; } + +.weather-button .weather-box .weather-grid .weather-forecast-time, .calendar .calendar-week-number, .calendar .calendar-day-heading, .calendar .calendar-day { + font-weight: 400; + font-size: 0.818em; } + +#LookingGlassDebugFlags .lg-debug-flag-button StLabel, #LookingGlassEvaluator .evaluator-results, .lg-dialog .actor-link { + font-family: monospace; } + +.unlock-dialog-clock .unlock-dialog-clock-time, #panel, .weather-button .weather-box .weather-grid .weather-forecast-temp, .world-clocks-button .world-clocks-grid .world-clocks-timezone, .world-clocks-button .world-clocks-grid .world-clocks-time, .events-button .events-box .events-list .event-box .event-time, .calendar .calendar-day-heading, .calendar .calendar-day { + font-feature-settings: "tnum"; } + +/* OSD Elements */ +#LookingGlassDialog, .screenshot-ui-panel, .workspace-switcher, .switcher-list, .resize-popup, .osd-window { + color: #ffffff; + background-color: #2e2e33; + border: 1px solid rgba(255, 255, 255, 0.02); + border-radius: 999px; + padding: 12px; } + +.lg-dialog StEntry { + background-color: #414146; + color: rgba(255, 255, 255, 0.7); } + .lg-dialog StEntry:hover { + background-color: #4b4b51; + color: #ffffff; } + .lg-dialog StEntry:focus { + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), #414146, 5%); + color: #ffffff; } + .lg-dialog StEntry:insensitive { + background-color: #3a3a3e; + color: rgba(255, 255, 255, 0.5); } + .lg-dialog StEntry StLabel.hint-text { + color: rgba(255, 255, 255, 0.7); } + +#LookingGlassDebugFlags .lg-debug-flag-button, #LookingGlassPropertyInspector .lg-obj-inspector-close-button, +#LookingGlassPropertyInspector .lg-obj-inspector-button, #LookingGlassDialog > #Toolbar .lg-toolbar-button { + color: #ffffff; + background-color: st-mix(#ffffff, #2e2e33, 9%); } + #LookingGlassDebugFlags .lg-debug-flag-button:focus, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:focus, + #LookingGlassPropertyInspector .lg-obj-inspector-button:focus, #LookingGlassDialog > #Toolbar .lg-toolbar-button:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#ffffff, #2e2e33, 9%), 5%); } + #LookingGlassDebugFlags .lg-debug-flag-button:focus:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:focus:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:focus:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #2e2e33, 9%), 4%), 5%); } + #LookingGlassDebugFlags .lg-debug-flag-button:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:hover { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #2e2e33, 9%), 4%); } + #LookingGlassDebugFlags .lg-debug-flag-button:active, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:active, + #LookingGlassPropertyInspector .lg-obj-inspector-button:active, #LookingGlassDialog > #Toolbar .lg-toolbar-button:active { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #2e2e33, 9%), 9%); } + #LookingGlassDebugFlags .lg-debug-flag-button:active:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:active:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:active:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #2e2e33, 9%), 9%), 4%); } + #LookingGlassDebugFlags .lg-debug-flag-button:active:focus, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:active:focus, + #LookingGlassPropertyInspector .lg-obj-inspector-button:active:focus, #LookingGlassDialog > #Toolbar .lg-toolbar-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #2e2e33, 9%), 9%), 5%); } + #LookingGlassDebugFlags .lg-debug-flag-button:checked, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:checked, + #LookingGlassPropertyInspector .lg-obj-inspector-button:checked, #LookingGlassDialog > #Toolbar .lg-toolbar-button:checked { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #2e2e33, 9%), 8%); } + #LookingGlassDebugFlags .lg-debug-flag-button:checked:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:checked:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:checked:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #2e2e33, 9%), 8%), 4%); } + #LookingGlassDebugFlags .lg-debug-flag-button:checked:active, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:checked:active, + #LookingGlassPropertyInspector .lg-obj-inspector-button:checked:active, #LookingGlassDialog > #Toolbar .lg-toolbar-button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #2e2e33, 9%), 8%), 9%); } + #LookingGlassDebugFlags .lg-debug-flag-button:insensitive, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:insensitive, + #LookingGlassPropertyInspector .lg-obj-inspector-button:insensitive, #LookingGlassDialog > #Toolbar .lg-toolbar-button:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(st-mix(#ffffff, #2e2e33, 9%), 3%); } + +#LookingGlassDialog .notebook-tab, .screenshot-ui-show-pointer-button, .screenshot-ui-type-button { + color: #ffffff; + background-color: #2e2e33; } + #LookingGlassDialog .notebook-tab:focus, .screenshot-ui-show-pointer-button:focus, .screenshot-ui-type-button:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(46, 46, 51, 0.25), 5%); } + #LookingGlassDialog .notebook-tab:focus:hover, .screenshot-ui-show-pointer-button:focus:hover, .screenshot-ui-type-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#2e2e33, 7%), 5%); } + #LookingGlassDialog .notebook-tab:hover, .screenshot-ui-show-pointer-button:hover, .screenshot-ui-type-button:hover { + color: #ffffff; + background-color: st-lighten(#2e2e33, 7%); } + #LookingGlassDialog .notebook-tab:active, .screenshot-ui-show-pointer-button:active, .screenshot-ui-type-button:active { + color: #ffffff; + background-color: st-lighten(#2e2e33, 9%); } + #LookingGlassDialog .notebook-tab:active:hover, .screenshot-ui-show-pointer-button:active:hover, .screenshot-ui-type-button:active:hover { + background-color: st-lighten(st-lighten(#2e2e33, 9%), 7%); } + #LookingGlassDialog .notebook-tab:active:focus, .screenshot-ui-show-pointer-button:active:focus, .screenshot-ui-type-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#2e2e33, 9%), 5%); } + #LookingGlassDialog .notebook-tab:checked, .screenshot-ui-show-pointer-button:checked, .screenshot-ui-type-button:checked { + color: #ffffff; + background-color: st-lighten(#2e2e33, 8%); } + #LookingGlassDialog .notebook-tab:checked:hover, .screenshot-ui-show-pointer-button:checked:hover, .screenshot-ui-type-button:checked:hover { + background-color: st-lighten(st-lighten(#2e2e33, 8%), 7%); } + #LookingGlassDialog .notebook-tab:checked:active, .screenshot-ui-show-pointer-button:checked:active, .screenshot-ui-type-button:checked:active { + background-color: st-lighten(st-lighten(#2e2e33, 8%), 9%); } + #LookingGlassDialog .notebook-tab:insensitive, .screenshot-ui-show-pointer-button:insensitive, .screenshot-ui-type-button:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: #2e2e33; } + +/* System Elements */ +.login-dialog .login-dialog-prompt-entry, .app-folder-dialog .folder-name-container .folder-name-entry, .search-entry { + background-color: #404045; + color: rgba(250, 250, 251, 0.7); } + .login-dialog .login-dialog-prompt-entry:hover, .app-folder-dialog .folder-name-container .folder-name-entry:hover, .search-entry:hover { + background-color: #4a4a50; + color: #fafafb; } + .login-dialog .login-dialog-prompt-entry:focus, .app-folder-dialog .folder-name-container .folder-name-entry:focus, .search-entry:focus { + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), #404045, 5%); + color: #fafafb; } + .login-dialog .login-dialog-prompt-entry:insensitive, .app-folder-dialog .folder-name-container .folder-name-entry:insensitive, .search-entry:insensitive { + background-color: #39393d; + color: rgba(250, 250, 251, 0.5); } + .login-dialog .login-dialog-prompt-entry StLabel.hint-text, .app-folder-dialog .folder-name-container .folder-name-entry StLabel.hint-text, .search-entry StLabel.hint-text { + color: rgba(250, 250, 251, 0.7); } + +.login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button { + color: #fafafb; + background-color: st-mix(#fafafb, #2e2e33, 9%); } + .login-dialog-button.a11y-button:insensitive, .login-dialog-button.cancel-button:insensitive, .login-dialog-button.switch-user-button:insensitive, .login-dialog-button.login-dialog-session-list-button:insensitive { + color: st-transparentize(#fafafb, 0.5); + background-color: st-darken(st-mix(#fafafb, #2e2e33, 9%), 3%); } + .login-dialog-button.a11y-button:focus, .login-dialog-button.cancel-button:focus, .login-dialog-button.switch-user-button:focus, .login-dialog-button.login-dialog-session-list-button:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#fafafb, #2e2e33, 9%), 5%); } + .login-dialog-button.a11y-button:focus:hover, .login-dialog-button.cancel-button:focus:hover, .login-dialog-button.switch-user-button:focus:hover, .login-dialog-button.login-dialog-session-list-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #2e2e33, 9%), 4%), 5%); } + .login-dialog-button.a11y-button:hover, .login-dialog-button.cancel-button:hover, .login-dialog-button.switch-user-button:hover, .login-dialog-button.login-dialog-session-list-button:hover { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #2e2e33, 9%), 4%); } + .login-dialog-button.a11y-button:active, .login-dialog-button.cancel-button:active, .login-dialog-button.switch-user-button:active, .login-dialog-button.login-dialog-session-list-button:active { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #2e2e33, 9%), 9%); } + .login-dialog-button.a11y-button:active:hover, .login-dialog-button.cancel-button:active:hover, .login-dialog-button.switch-user-button:active:hover, .login-dialog-button.login-dialog-session-list-button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #2e2e33, 9%), 9%), 4%); } + .login-dialog-button.a11y-button:active:focus, .login-dialog-button.cancel-button:active:focus, .login-dialog-button.switch-user-button:active:focus, .login-dialog-button.login-dialog-session-list-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #2e2e33, 9%), 9%), 5%); } + .login-dialog-button.a11y-button:checked, .login-dialog-button.cancel-button:checked, .login-dialog-button.switch-user-button:checked, .login-dialog-button.login-dialog-session-list-button:checked { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #2e2e33, 9%), 8%); } + .login-dialog-button.a11y-button:checked:hover, .login-dialog-button.cancel-button:checked:hover, .login-dialog-button.switch-user-button:checked:hover, .login-dialog-button.login-dialog-session-list-button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #2e2e33, 9%), 8%), 4%); } + .login-dialog-button.a11y-button:checked:active, .login-dialog-button.cancel-button:checked:active, .login-dialog-button.switch-user-button:checked:active, .login-dialog-button.login-dialog-session-list-button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #2e2e33, 9%), 8%), 9%); } + +/* Lockscreen Elements */ +.unlock-dialog-notifications-container .message StButton, +.unlock-dialog-notifications-container .unlock-dialog-notification-source StButton, .parental-controls-shield .parental-controls-shield-button, .unlock-dialog .button, +.unlock-dialog .icon-button, +.unlock-dialog .calendar .calendar-month-header .pager-button, +.calendar .calendar-month-header .unlock-dialog .pager-button, +.unlock-dialog .message-notification-group .message-collapse-button, +.message-notification-group .unlock-dialog .message-collapse-button, +.unlock-dialog .message .message-header .message-expand-button, +.message .message-header .unlock-dialog .message-expand-button, +.unlock-dialog .message .message-header .message-close-button, +.message .message-header .unlock-dialog .message-close-button, +.unlock-dialog .screenshot-ui-show-pointer-button, +.unlock-dialog .login-dialog-button.a11y-button, +.unlock-dialog .login-dialog-button.cancel-button, +.unlock-dialog .login-dialog-button.switch-user-button, +.unlock-dialog .login-dialog-button.login-dialog-session-list-button, .unlock-dialog .login-dialog-auth-list-item { + color: #fafafb; + background-color: rgba(250, 250, 251, 0.1); } + .unlock-dialog-notifications-container .message StButton:focus, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:focus, .parental-controls-shield .parental-controls-shield-button:focus, .unlock-dialog .button:focus, + .unlock-dialog .icon-button:focus, + .unlock-dialog .calendar .calendar-month-header .pager-button:focus, + .calendar .calendar-month-header .unlock-dialog .pager-button:focus, + .unlock-dialog .message-notification-group .message-collapse-button:focus, + .message-notification-group .unlock-dialog .message-collapse-button:focus, + .unlock-dialog .message .message-header .message-expand-button:focus, + .message .message-header .unlock-dialog .message-expand-button:focus, + .unlock-dialog .message .message-header .message-close-button:focus, + .message .message-header .unlock-dialog .message-close-button:focus, + .unlock-dialog .screenshot-ui-show-pointer-button:focus, + .unlock-dialog .login-dialog-button.a11y-button:focus, + .unlock-dialog .login-dialog-button.cancel-button:focus, + .unlock-dialog .login-dialog-button.switch-user-button:focus, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:focus, .unlock-dialog .login-dialog-auth-list-item:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(250, 250, 251, 0.1), 5%); } + .unlock-dialog-notifications-container .message StButton:focus:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:focus:hover, .parental-controls-shield .parental-controls-shield-button:focus:hover, .unlock-dialog .button:focus:hover, + .unlock-dialog .icon-button:focus:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:focus:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:focus:hover, + .unlock-dialog .message-notification-group .message-collapse-button:focus:hover, + .message-notification-group .unlock-dialog .message-collapse-button:focus:hover, + .unlock-dialog .message .message-header .message-expand-button:focus:hover, + .message .message-header .unlock-dialog .message-expand-button:focus:hover, + .unlock-dialog .message .message-header .message-close-button:focus:hover, + .message .message-header .unlock-dialog .message-close-button:focus:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:focus:hover, + .unlock-dialog .login-dialog-button.a11y-button:focus:hover, + .unlock-dialog .login-dialog-button.cancel-button:focus:hover, + .unlock-dialog .login-dialog-button.switch-user-button:focus:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:focus:hover, .unlock-dialog .login-dialog-auth-list-item:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(250, 250, 251, 0.13), 5%); } + .unlock-dialog-notifications-container .message StButton:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:hover, .parental-controls-shield .parental-controls-shield-button:hover, .unlock-dialog .button:hover, + .unlock-dialog .icon-button:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:hover, + .unlock-dialog .message-notification-group .message-collapse-button:hover, + .message-notification-group .unlock-dialog .message-collapse-button:hover, + .unlock-dialog .message .message-header .message-expand-button:hover, + .message .message-header .unlock-dialog .message-expand-button:hover, + .unlock-dialog .message .message-header .message-close-button:hover, + .message .message-header .unlock-dialog .message-close-button:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:hover, + .unlock-dialog .login-dialog-button.a11y-button:hover, + .unlock-dialog .login-dialog-button.cancel-button:hover, + .unlock-dialog .login-dialog-button.switch-user-button:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:hover, .unlock-dialog .login-dialog-auth-list-item:hover { + color: #fafafb; + background-color: rgba(250, 250, 251, 0.13); } + .unlock-dialog-notifications-container .message StButton:active, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:active, .parental-controls-shield .parental-controls-shield-button:active, .unlock-dialog .button:active, + .unlock-dialog .icon-button:active, + .unlock-dialog .calendar .calendar-month-header .pager-button:active, + .calendar .calendar-month-header .unlock-dialog .pager-button:active, + .unlock-dialog .message-notification-group .message-collapse-button:active, + .message-notification-group .unlock-dialog .message-collapse-button:active, + .unlock-dialog .message .message-header .message-expand-button:active, + .message .message-header .unlock-dialog .message-expand-button:active, + .unlock-dialog .message .message-header .message-close-button:active, + .message .message-header .unlock-dialog .message-close-button:active, + .unlock-dialog .screenshot-ui-show-pointer-button:active, + .unlock-dialog .login-dialog-button.a11y-button:active, + .unlock-dialog .login-dialog-button.cancel-button:active, + .unlock-dialog .login-dialog-button.switch-user-button:active, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:active, .unlock-dialog .login-dialog-auth-list-item:active { + color: #fafafb; + background-color: rgba(250, 250, 251, 0.16); } + .unlock-dialog-notifications-container .message StButton:active:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:active:hover, .parental-controls-shield .parental-controls-shield-button:active:hover, .unlock-dialog .button:active:hover, + .unlock-dialog .icon-button:active:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:active:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:active:hover, + .unlock-dialog .message-notification-group .message-collapse-button:active:hover, + .message-notification-group .unlock-dialog .message-collapse-button:active:hover, + .unlock-dialog .message .message-header .message-expand-button:active:hover, + .message .message-header .unlock-dialog .message-expand-button:active:hover, + .unlock-dialog .message .message-header .message-close-button:active:hover, + .message .message-header .unlock-dialog .message-close-button:active:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:active:hover, + .unlock-dialog .login-dialog-button.a11y-button:active:hover, + .unlock-dialog .login-dialog-button.cancel-button:active:hover, + .unlock-dialog .login-dialog-button.switch-user-button:active:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:active:hover, .unlock-dialog .login-dialog-auth-list-item:active:hover { + background-color: rgba(250, 250, 251, 0.19); } + .unlock-dialog-notifications-container .message StButton:active:focus, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:active:focus, .parental-controls-shield .parental-controls-shield-button:active:focus, .unlock-dialog .button:active:focus, + .unlock-dialog .icon-button:active:focus, + .unlock-dialog .calendar .calendar-month-header .pager-button:active:focus, + .calendar .calendar-month-header .unlock-dialog .pager-button:active:focus, + .unlock-dialog .message-notification-group .message-collapse-button:active:focus, + .message-notification-group .unlock-dialog .message-collapse-button:active:focus, + .unlock-dialog .message .message-header .message-expand-button:active:focus, + .message .message-header .unlock-dialog .message-expand-button:active:focus, + .unlock-dialog .message .message-header .message-close-button:active:focus, + .message .message-header .unlock-dialog .message-close-button:active:focus, + .unlock-dialog .screenshot-ui-show-pointer-button:active:focus, + .unlock-dialog .login-dialog-button.a11y-button:active:focus, + .unlock-dialog .login-dialog-button.cancel-button:active:focus, + .unlock-dialog .login-dialog-button.switch-user-button:active:focus, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:active:focus, .unlock-dialog .login-dialog-auth-list-item:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(250, 250, 251, 0.16), 5%); } + .unlock-dialog-notifications-container .message StButton:checked, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:checked, .parental-controls-shield .parental-controls-shield-button:checked, .unlock-dialog .button:checked, + .unlock-dialog .icon-button:checked, + .unlock-dialog .calendar .calendar-month-header .pager-button:checked, + .calendar .calendar-month-header .unlock-dialog .pager-button:checked, + .unlock-dialog .message-notification-group .message-collapse-button:checked, + .message-notification-group .unlock-dialog .message-collapse-button:checked, + .unlock-dialog .message .message-header .message-expand-button:checked, + .message .message-header .unlock-dialog .message-expand-button:checked, + .unlock-dialog .message .message-header .message-close-button:checked, + .message .message-header .unlock-dialog .message-close-button:checked, + .unlock-dialog .screenshot-ui-show-pointer-button:checked, + .unlock-dialog .login-dialog-button.a11y-button:checked, + .unlock-dialog .login-dialog-button.cancel-button:checked, + .unlock-dialog .login-dialog-button.switch-user-button:checked, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:checked, .unlock-dialog .login-dialog-auth-list-item:checked { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #36363a, 9%), 8%); } + .unlock-dialog-notifications-container .message StButton:checked:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:checked:hover, .parental-controls-shield .parental-controls-shield-button:checked:hover, .unlock-dialog .button:checked:hover, + .unlock-dialog .icon-button:checked:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:checked:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:checked:hover, + .unlock-dialog .message-notification-group .message-collapse-button:checked:hover, + .message-notification-group .unlock-dialog .message-collapse-button:checked:hover, + .unlock-dialog .message .message-header .message-expand-button:checked:hover, + .message .message-header .unlock-dialog .message-expand-button:checked:hover, + .unlock-dialog .message .message-header .message-close-button:checked:hover, + .message .message-header .unlock-dialog .message-close-button:checked:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:checked:hover, + .unlock-dialog .login-dialog-button.a11y-button:checked:hover, + .unlock-dialog .login-dialog-button.cancel-button:checked:hover, + .unlock-dialog .login-dialog-button.switch-user-button:checked:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:checked:hover, .unlock-dialog .login-dialog-auth-list-item:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #36363a, 9%), 8%), 4%); } + .unlock-dialog-notifications-container .message StButton:checked:active, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:checked:active, .parental-controls-shield .parental-controls-shield-button:checked:active, .unlock-dialog .button:checked:active, + .unlock-dialog .icon-button:checked:active, + .unlock-dialog .calendar .calendar-month-header .pager-button:checked:active, + .calendar .calendar-month-header .unlock-dialog .pager-button:checked:active, + .unlock-dialog .message-notification-group .message-collapse-button:checked:active, + .message-notification-group .unlock-dialog .message-collapse-button:checked:active, + .unlock-dialog .message .message-header .message-expand-button:checked:active, + .message .message-header .unlock-dialog .message-expand-button:checked:active, + .unlock-dialog .message .message-header .message-close-button:checked:active, + .message .message-header .unlock-dialog .message-close-button:checked:active, + .unlock-dialog .screenshot-ui-show-pointer-button:checked:active, + .unlock-dialog .login-dialog-button.a11y-button:checked:active, + .unlock-dialog .login-dialog-button.cancel-button:checked:active, + .unlock-dialog .login-dialog-button.switch-user-button:checked:active, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:checked:active, .unlock-dialog .login-dialog-auth-list-item:checked:active { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #36363a, 9%), 8%), 9%); } + .unlock-dialog-notifications-container .message StButton:insensitive, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:insensitive, .parental-controls-shield .parental-controls-shield-button:insensitive, .unlock-dialog .button:insensitive, + .unlock-dialog .icon-button:insensitive, + .unlock-dialog .calendar .calendar-month-header .pager-button:insensitive, + .calendar .calendar-month-header .unlock-dialog .pager-button:insensitive, + .unlock-dialog .message-notification-group .message-collapse-button:insensitive, + .message-notification-group .unlock-dialog .message-collapse-button:insensitive, + .unlock-dialog .message .message-header .message-expand-button:insensitive, + .message .message-header .unlock-dialog .message-expand-button:insensitive, + .unlock-dialog .message .message-header .message-close-button:insensitive, + .message .message-header .unlock-dialog .message-close-button:insensitive, + .unlock-dialog .screenshot-ui-show-pointer-button:insensitive, + .unlock-dialog .login-dialog-button.a11y-button:insensitive, + .unlock-dialog .login-dialog-button.cancel-button:insensitive, + .unlock-dialog .login-dialog-button.switch-user-button:insensitive, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:insensitive, .unlock-dialog .login-dialog-auth-list-item:insensitive { + color: st-transparentize(#fafafb, 0.5); + background-color: st-darken(st-mix(#fafafb, #36363a, 9%), 3%); } + +.unlock-dialog .login-dialog-prompt-entry { + background-color: rgba(250, 250, 251, 0.1); + color: rgba(250, 250, 251, 0.7); } + .unlock-dialog .login-dialog-prompt-entry:hover { + background-color: rgba(255, 255, 255, 0.1); + color: #fafafb; } + .unlock-dialog .login-dialog-prompt-entry:focus { + box-shadow: inset 0 0 0 2px st-transparentize(rgba(250, 250, 251, 0.4), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(250, 250, 251, 0.1), 5%); + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(rgba(250, 250, 251, 0.4), 0.2) !important; + background-color: st-mix(rgba(250, 250, 251, 0.4), rgba(250, 250, 251, 0.1), 5%); } + .unlock-dialog .login-dialog-prompt-entry:insensitive { + background-color: rgba(242, 242, 244, 0.1); + color: rgba(250, 250, 251, 0.5); } + .unlock-dialog .login-dialog-prompt-entry StLabel.hint-text { + color: rgba(250, 250, 251, 0.7); } + +/* WIDGETS */ +.shell-link { + color: st-lighten(-st-accent-color, 20%); } + .shell-link:hover { + color: st-lighten(st-lighten(-st-accent-color, 20%), 10%); } + +.lowres-icon { + icon-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } + +.icon-dropshadow { + icon-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); } + +/* Entries */ +StEntry StIcon.capslock-warning { + icon-size: 1.091em; + warning-color: #cd9309; + padding: 0 4px; } + +StEntry StIcon.peek-password { + icon-size: 1.091em; + padding: 0 4px; } + +StEntry StLabel.hint-text { + margin-left: 2px; } + +/* Buttons */ +.button { + min-height: 1.5em; } + +.icon-button, .login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button, .screenshot-ui-show-pointer-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button, .message-notification-group .message-collapse-button, .calendar .calendar-month-header .pager-button { + border-radius: 999px; + padding: 0.818em; + min-height: 1.091em; } + .icon-button StIcon, .login-dialog-button.a11y-button StIcon, .login-dialog-button.cancel-button StIcon, .login-dialog-button.switch-user-button StIcon, .login-dialog-button.login-dialog-session-list-button StIcon, .screenshot-ui-show-pointer-button StIcon, .message .message-header .message-expand-button StIcon, + .message .message-header .message-close-button StIcon, .message-notification-group .message-collapse-button StIcon, .calendar .calendar-month-header .pager-button StIcon { + icon-size: 1.091em; + -st-icon-style: symbolic; } + +/* Check Boxes */ +.check-box StBoxLayout { + spacing: .8em; } + +.check-box StBin { + border-radius: 7px; + padding: 2px; } + +.check-box:focus StBin { + background-color: rgba(0, 0, 0, 0.01); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.65); } + +.check-box StIcon { + icon-size: 14px; + padding: 1px; + color: transparent; + border-radius: 6px; + border: 2px solid rgba(255, 255, 255, 0.15); } + +.check-box:hover StIcon { + border-color: rgba(255, 255, 255, 0.2); } + +.check-box:active StIcon { + border-color: rgba(255, 255, 255, 0.3); } + +.check-box:checked StIcon { + background-color: -st-accent-color; + color: -st-accent-fg-color; + border-color: transparent; } + +.check-box:checked:hover StIcon { + background-color: st-lighten(-st-accent-color, 5%); + color: st-lighten(-st-accent-fg-color, 5%); } + +.check-box:checked:active StIcon { + background-color: st-darken(-st-accent-color, 7%); + color: st-darken(-st-accent-fg-color, 7%); } + +/* Switches */ +.toggle-switch { + width: 46px; + border-radius: 999px; + transition-duration: 100ms; + color: #ffffff; + background: rgba(255, 255, 255, 0.15); } + .toggle-switch:hover { + background: rgba(255, 255, 255, 0.2); } + .toggle-switch StIcon { + icon-size: 16px; } + .toggle-switch .handle { + margin: 3px; + width: 20px; + height: 20px; + border-radius: 999px; + background: #d7d7d8; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + transition-duration: 100ms; } + .toggle-switch:checked { + background: -st-accent-color; + color: -st-accent-fg-color; } + .toggle-switch:checked:hover { + background-color: st-lighten(-st-accent-color, 5%); + color: st-lighten(-st-accent-fg-color, 5%); } + .toggle-switch:checked .handle { + background: white; } + +/* Slider */ +.slider { + color: #e8e8e8; + -barlevel-height: 4px; + -barlevel-background-color: rgba(255, 255, 255, 0.1); + -barlevel-active-background-color: -st-accent-color; + -barlevel-overdrive-color: #c01c28; + -barlevel-overdrive-separator-width: 1px; + -slider-handle-radius: 0.5455em; } + .slider:hover { + color: #ffffff; } + +/* Scrollbars */ +StScrollView.vfade { + -st-vfade-offset: 68px; } + +StScrollView.hfade { + -st-hfade-offset: 68px; } + +StScrollBar { + padding: 0; } + StScrollView StScrollBar { + min-width: 8px; + min-height: 8px; } + StScrollBar StBin#trough { + border-radius: 0; + background-color: transparent; } + StScrollBar > .vhandle, StScrollBar > .hhandle { + border-radius: 8px; + background-color: #727275; + border: 3px solid transparent; + transition: 500ms all ease; } + StScrollBar > .vhandle:hover, StScrollBar > .hhandle:hover { + background-color: #9b9b9d; } + StScrollBar > .vhandle:active, StScrollBar > .hhandle:active { + background-color: #868689; } + +/* Popovers/Menus */ +.popup-menu-boxpointer, .candidate-popup-boxpointer { + -arrow-rise: 6px; } + +.popup-menu { + min-width: 15em; + color: #ffffff; } + .popup-menu.panel-menu { + margin-bottom: 1.75em; } + +.popup-menu-content, .candidate-popup-content { + padding: 6px; + background-color: #36363a; + border-radius: 20px; + border: 1px solid #424247; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2); } + +.popup-menu-item { + background-color: transparent; + border-color: transparent; + box-shadow: none; + border-radius: 12px; } + .popup-menu-item:insensitive { + background-color: transparent !important; } + .popup-menu-item:active { + color: #ffffff; + background-color: st-lighten(#424247, 9%); } + .popup-menu-item:active:hover { + background-color: st-lighten(st-lighten(#424247, 9%), 7%); } + .popup-menu-item:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#424247, 9%), 5%); } + .popup-menu-item:hover, .popup-menu-item:selected, .popup-menu-item:checked { + color: #ffffff; + background-color: st-lighten(#424247, 7%); } + .popup-menu-item:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: #424247; } + .popup-menu-item:checked { + border-radius: 12px 12px 0 0 !important; } + .popup-menu-item .toggle-switch:ltr { + margin-left: 4px; } + .popup-menu-item .toggle-switch:rtl { + margin-right: 4px; } + +.popup-ornamented-menu-item:ltr { + padding-left: 6px; } + +.popup-ornamented-menu-item:rtl { + padding-right: 6px; } + +.popup-inactive-menu-item { + color: #ffffff; } + .popup-inactive-menu-item:insensitive { + color: #9b9b9d; } + +.popup-menu-arrow, +.popup-menu-icon { + icon-size: 1.091em; } + +.popup-sub-menu { + border-radius: 0 0 13px 13px; + margin-bottom: 6px; + border: 1px solid transparent; + background-color: #56565c; } + .popup-sub-menu .popup-menu-item { + border-radius: 0; + border-top-width: 0; + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .popup-sub-menu .popup-menu-item:insensitive { + background-color: transparent !important; } + .popup-sub-menu .popup-menu-item:active { + color: #ffffff; + background-color: st-lighten(#56565c, 9%); } + .popup-sub-menu .popup-menu-item:active:hover { + background-color: st-lighten(st-lighten(#56565c, 9%), 7%); } + .popup-sub-menu .popup-menu-item:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#56565c, 9%), 5%); } + .popup-sub-menu .popup-menu-item:hover, .popup-sub-menu .popup-menu-item:selected, .popup-sub-menu .popup-menu-item:checked { + color: #ffffff; + background-color: st-lighten(#56565c, 7%); } + .popup-sub-menu .popup-menu-item:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: #56565c; } + .popup-sub-menu .popup-menu-item:last-child { + border-radius: 0 0 12px 12px; + border-bottom-width: 0; } + .popup-sub-menu .popup-menu-section .popup-menu-item:last-child:hover, .popup-sub-menu .popup-menu-section .popup-menu-item:last-child:focus { + border-radius: 0; } + .popup-sub-menu .popup-menu-section:last-child .popup-menu-item:last-child { + border-radius: 0 0 12px 12px; } + +.popup-menu-ornament { + icon-size: 1.091em !important; + width: 1.091em; } + +.popup-separator-menu-item { + border: none !important; } + .popup-separator-menu-item .popup-separator-menu-item-separator { + height: 1px; + background-color: rgba(255, 255, 255, 0.1); } + .popup-sub-menu .popup-separator-menu-item { + background-color: transparent; } + .popup-sub-menu .popup-separator-menu-item:ltr { + margin-right: 2.5em; } + .popup-sub-menu .popup-separator-menu-item:rtl { + margin-left: 2.5em; } + .popup-sub-menu .popup-separator-menu-item .popup-separator-menu-item-separator { + background-color: rgba(255, 255, 255, 0.1); } + +.background-menu { + -boxpointer-gap: 0px; + -arrow-rise: 0px; } + +.app-menu { + max-width: 27.25em; } + .app-menu .popup-inactive-menu-item:first-child > StLabel:ltr { + margin-right: 8px; } + .app-menu .popup-inactive-menu-item:first-child > StLabel:rtl { + margin-left: 8px; } + +/* Date/Time Menu */ +#calendarArea { + padding: 4px; } + +.datemenu-popover { + border-radius: 30px; } + +.datemenu-calendar-column { + spacing: 6px; } + .datemenu-calendar-column:ltr { + margin-left: 6px; } + .datemenu-calendar-column:rtl { + margin-right: 6px; } + .datemenu-calendar-column .datemenu-displays-box { + spacing: 6px; } + +.datemenu-today-button { + padding: 9px; } + .datemenu-today-button .day-label { + font-weight: bold; } + +.calendar { + margin-top: 0; + padding: 0; } + .calendar .calendar-month-header .calendar-change-month-back StIcon, + .calendar .calendar-month-header .calendar-change-month-forward StIcon { + icon-size: 1.091em; } + .calendar .calendar-month-header .calendar-month-label { + color: #ffffff !important; + padding: 8px 0; + width: 10em; + border-radius: 999px; + text-align: center; } + .calendar .calendar-month-header .pager-button { + height: 2.6em; + width: 2.6em; + padding: 0; } + .calendar .calendar-day { + border-radius: 999px; + height: 3em; + width: 3em; + margin: 2px; + padding: 0; + font-weight: bold; + text-align: center; } + .calendar .calendar-day.calendar-weekend { + color: #9b9b9d; } + .calendar .calendar-day.calendar-other-month { + color: rgba(255, 255, 255, 0.5); + font-weight: normal; } + .calendar .calendar-day.calendar-other-month.calendar-weekend { + color: rgba(255, 255, 255, 0.5); } + .calendar .calendar-day.calendar-today { + color: -st-accent-fg-color !important; } + .calendar .calendar-day.calendar-today.calendar-day-with-events { + background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg") !important; } + .calendar .calendar-day.calendar-day-with-events { + background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg"); + background-size: contain; } + .calendar .calendar-day-heading { + font-weight: bold; + text-align: center; + margin: 4px; + padding: 3px 6px; + border-radius: 8px; } + .calendar .calendar-week-number { + font-weight: bold; + font-feature-settings: "tnum"; + text-align: center; + margin: 6px; + padding: 0 6px; + border-radius: 4px; + background-color: rgba(155, 155, 157, 0.2); + color: #9b9b9d; } + +.events-button .events-box .events-title { + color: #b2b2b4; + padding-bottom: 6px; } + +.events-button .events-box .events-list { + spacing: 6px; } + .events-button .events-box .events-list .event-box { + spacing: 6px; + border-radius: 8px; } + .events-button .events-box .events-list .event-box .event-time { + color: #b2b2b4; } + .events-button .events-box .events-list .event-placeholder { + color: #b2b2b4; + font-style: italic; } + +.world-clocks-button .world-clocks-header { + color: #b2b2b4; } + .world-clocks-button .world-clocks-header.no-world-clocks { + color: #ffffff; } + +.world-clocks-button .world-clocks-grid { + spacing-rows: 6px; + spacing-columns: 12px; } + .world-clocks-button .world-clocks-grid .world-clocks-time { + font-weight: bold; } + .world-clocks-button .world-clocks-grid .world-clocks-time:ltr { + text-align: right; } + .world-clocks-button .world-clocks-grid .world-clocks-time:rtl { + text-align: left; } + .world-clocks-button .world-clocks-grid .world-clocks-timezone { + color: #b2b2b4; } + +.weather-button .weather-box { + spacing: 6px; } + .weather-button .weather-box .weather-header-box { + spacing: 6px; } + .weather-button .weather-box .weather-header-box .weather-header { + color: #b2b2b4; } + .weather-button .weather-box .weather-header-box .weather-header.no-location { + color: #ffffff; } + .weather-button .weather-box .weather-header-box .weather-header.location { + font-weight: normal; } + .weather-button .weather-box .weather-grid { + spacing-rows: 6px; + spacing-columns: 12px; } + .weather-button .weather-box .weather-grid .weather-forecast-time { + padding-top: 6px; + padding-bottom: 6px; } + .weather-button .weather-box .weather-grid .weather-forecast-icon { + icon-size: 2.182em; + margin-bottom: 4px; } + .weather-button .weather-box .weather-grid .weather-forecast-temp { + font-weight: bold; } + +/* Message List */ +.message-list { + width: 29em; + border: solid rgba(255, 255, 255, 0.1); } + .message-list:ltr { + margin-left: 0; + margin-right: 4px; + padding-right: 6px; + border-right-width: 1px; } + .message-list:rtl { + margin-right: 0; + margin-left: 4px; + padding-left: 6px; + border-left-width: 1px; } + .message-list .message-list-placeholder { + color: rgba(255, 255, 255, 0.45); } + .message-list .message-list-placeholder > StIcon { + icon-size: 96px; + margin-bottom: 12px; + -st-icon-style: symbolic; } + +.message-view { + -st-vfade-offset: 68px; } + .message-view:ltr { + margin-right: 12px; } + .message-view:rtl { + margin-left: 12px; } + .message-view .message { + margin-bottom: 12px !important; + border-radius: 18px; } + +.message-list-controls { + padding: 12px; + padding-bottom: 9px; + spacing: 6px; } + .message-list-controls .message-list-clear-button { + border-radius: 999px; } + +.message-notification-group { + spacing: 12px; } + .message-notification-group .message-group-header { + padding: 6px; } + .message-notification-group .message-group-header .message-group-title { + margin: 0 4px; } + .message-notification-group .message-collapse-button { + color: #ffffff; + background-color: rgba(255, 255, 255, 0.2); + padding: 4px !important; + border: 4px transparent solid; } + .message-notification-group .message-collapse-button:hover { + background-color: rgba(255, 255, 255, 0.3); } + .message-notification-group .message-collapse-button:active { + background-color: rgba(255, 255, 255, 0.2); } + +.message { + padding: 6px; + margin: 0; + border-radius: 16px; + background-color: #54545a; } + .message:second-in-stack { + background-color: #45454a; + box-shadow: 0 1px 1px 0 transparent; } + .message:lower-in-stack { + background-color: #3d3d42; + box-shadow: none; + border-color: transparent; } + .message .message-header { + spacing: 6px; + color: #b2b2b4; + padding: 0 6px; } + .message .message-header:ltr { + padding-right: 0; } + .message .message-header:rtl { + padding-left: 0; } + .message .message-header .message-source-icon { + icon-size: 1.091em; + -st-icon-style: symbolic; } + .message .message-header .message-header-content { + spacing: 6px; + min-height: 1.637em; + padding-bottom: 6px; } + .message .message-header .message-header-content .message-source-title { + font-weight: bold; } + .message .message-header .message-header-content .event-time { + color: #b2b2b4; + padding-bottom: 0.068em; } + .message .message-header .message-header-content .event-time:ltr { + text-align: right; } + .message .message-header .message-header-content .event-time:rtl { + text-align: left; } + .message .message-header .message-expand-button, + .message .message-header .message-close-button { + border-radius: 999px; + color: #ffffff; } + .message .message-header .message-expand-button { + padding: 6px; } + .message .message-header .message-close-button { + margin: 3px; + padding: 6px; } + .message .message-box { + padding: 6px; + margin-top: 0; + spacing: 6px; } + .message .message-box .message-icon { + icon-size: 48px; } + .message .message-box .message-icon:ltr { + margin-right: 6px; } + .message .message-box .message-icon:rtl { + margin-left: 6px; } + .message .message-box .message-icon.message-themed-icon { + border-radius: 999px; + background-color: rgba(255, 255, 255, 0.07); + icon-size: 1.091em; + min-width: 48px; + min-height: 48px; } + .message .message-box:first-child { + margin-top: 12px; } + .message .message-box .message-content { + spacing: 4px; } + .message .message-box .message-content .message-title { + font-weight: bold; } + .message .message-action-bin { + padding: 4px; + spacing: 6px; } + .message .message-action-bin * { + margin: 0 4px; } + .message .message-action-bin *:first-child:ltr { + margin-left: 0; } + .message .message-action-bin *:first-child:rtl { + margin-right: 0; } + .message .message-action-bin *:last-child:ltr { + margin-right: 0; } + .message .message-action-bin *:last-child:rtl { + margin-left: 0; } + +.url-highlighter { + link-color: st-lighten(-st-accent-color, 20%); } + +/* Media Controls */ +.message-media-control { + padding: 0 18px; + border-radius: 8px; + color: #ffffff; + border: 1px solid transparent; } + .message-media-control:hover { + background-color: #5b5b62; + color: #ffffff; } + .message-media-control:active { + background-color: #606067; + color: #ffffff; } + .message-media-control:insensitive { + color: #a8a8aa; } + .message-media-control StIcon { + icon-size: 16px; } + +.media-message .message-icon { + border-radius: 8px !important; } + .media-message .message-icon.message-themed-icon { + icon-size: 32px !important; } + +.candidate-popup-content { + padding: 6px; + spacing: 6px; + border-radius: 12px; } + +.candidate-index { + padding: 0; + padding-right: 6px; + color: #9b9b9d; } + +.candidate-box { + padding: 6px 12px 6px 12px; + border-radius: 8px; } + .candidate-box:selected { + background-color: -st-accent-color; + color: -st-accent-fg-color; } + .candidate-box:hover { + background-color: #4f4f54; + color: white; } + +.candidate-page-button-box { + height: 2em; } + .vertical .candidate-page-button-box { + padding-top: 12px; } + .horizontal .candidate-page-button-box { + padding-left: 12px; } + +.candidate-page-button { + padding: 6px; } + .candidate-page-button StIcon { + icon-size: 16px; } + +.candidate-page-button-previous { + border-radius: 8px 0px 0px 8px; + border-right-width: 0; + box-shadow: none; } + +.candidate-page-button-next { + border-radius: 0px 8px 8px 0px; + box-shadow: none; } + +/* Notifications & Message Tray */ +.notification-banner { + min-height: 64px; + width: 34em; + box-shadow: 0 2px 4px 2px rgba(0, 0, 0, 0.2); + border-radius: 16px; + margin: 4px; } + +.notification-buttons-bin { + spacing: 0; } + +/* Modal Dialogs */ +.modal-dialog { + background-color: #36363a; + border-radius: 18px; + padding: 24px; + spacing: 18px; + box-shadow: 0 12px 8px 12px rgba(0, 0, 0, 0.03); } + .modal-dialog .modal-dialog-content-box { + padding-top: 12px; + spacing: 18px; + max-width: 28em; } + .modal-dialog .modal-dialog-button-box { + padding-top: 6px; } + +.dialog-list { + spacing: 18px; } + .dialog-list .dialog-list-title { + text-align: center; } + .dialog-list .dialog-list-scrollview { + max-height: 200px; } + .dialog-list .dialog-list-box { + spacing: 1em; } + .dialog-list .dialog-list-box .dialog-list-item { + spacing: 1em; } + .dialog-list .dialog-list-box .dialog-list-item .dialog-list-item-title { + font-weight: bold; } + .dialog-list .dialog-list-box .dialog-list-item .dialog-list-item-description { + color: #f2f2f2; } + +/* End Session Dialog */ +.end-session-dialog { + width: 24em; } + .end-session-dialog .end-session-dialog-battery-warning, + .end-session-dialog .dialog-list-title { + color: #cd9309; + background-color: rgba(205, 147, 9, 0.1); + padding: 9px; + border-radius: 8px; + margin: 4px 0; } + +/* Message Dialog */ +.message-dialog-content { + spacing: 18px; } + .message-dialog-content .message-dialog-title { + text-align: center; } + .message-dialog-content .message-dialog-description { + text-align: center; } + +/* Run Dialog */ +.run-dialog { + width: 24em; + padding-bottom: 6px; } + .run-dialog .run-dialog-entry { + padding: 12px 9px; } + .run-dialog .run-dialog-description { + color: #cccccc; } + +/* Password or Authentication Dialog */ +.prompt-dialog { + width: 28em; } + .prompt-dialog .prompt-dialog-password-grid { + spacing-rows: 8px; + spacing-columns: 4px; } + .prompt-dialog .prompt-dialog-password-grid .prompt-dialog-password-entry { + width: auto; } + .prompt-dialog .prompt-dialog-password-grid .prompt-dialog-password-entry:ltr { + margin-left: 20px; } + .prompt-dialog .prompt-dialog-password-grid .prompt-dialog-password-entry:rtl { + margin-right: 20px; } + .prompt-dialog .prompt-dialog-password-layout { + spacing: 8px; } + .prompt-dialog .prompt-dialog-password-entry { + width: 20em; + padding: 12px 9px; } + .prompt-dialog .prompt-dialog-error-label, + .prompt-dialog .prompt-dialog-info-label, + .prompt-dialog .prompt-dialog-null-label { + text-align: center; + padding: 9px; + border-radius: 8px; + margin: 4px 0; } + .prompt-dialog .prompt-dialog-error-label { + color: #cd9309; + background-color: rgba(205, 147, 9, 0.1); } + .prompt-dialog .prompt-dialog-info-label { + color: #ffffff; + background-color: rgba(255, 255, 255, 0.1); } + +/* Polkit Dialog */ +.polkit-dialog-user-layout { + text-align: center; + spacing: 8px; + margin-bottom: 6px; } + .polkit-dialog-user-layout .polkit-dialog-user-root-label { + color: #cd9309; } + +/* Audio selection dialog */ +.audio-device-selection-dialog { + min-width: 24em; } + .audio-device-selection-dialog .audio-selection-box { + spacing: 12px; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device { + color: #ffffff; + background-color: #36363a; + background-color: transparent; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(54, 54, 58, 0.25), 5%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#36363a, 7%), 5%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:hover { + color: #ffffff; + background-color: st-lighten(#36363a, 7%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:active { + color: #ffffff; + background-color: st-lighten(#36363a, 9%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:active:hover { + background-color: st-lighten(st-lighten(#36363a, 9%), 7%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#36363a, 9%), 5%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:highlighted, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:selected, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:checked { + color: #ffffff; + background-color: st-lighten(#36363a, 8%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:highlighted:hover, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:selected:hover, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:checked:hover { + background-color: st-lighten(st-lighten(#36363a, 8%), 7%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:highlighted:active, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:selected:active, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:checked:active { + background-color: st-lighten(st-lighten(#36363a, 8%), 9%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: #36363a; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device .audio-selection-device-box { + padding: 12px; + spacing: 12px; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device .audio-selection-device-icon { + icon-size: 64px; } + +/* Welcome dialog */ +.welcome-dialog-image { + background-image: url("resource:///org/gnome/shell/theme/gnome-shell-start.svg"); + background-size: contain; + /* Reasonable maximum dimensions */ + height: 300px; + width: 300px; } + +/* Access portal dialog */ +.access-dialog { + text-align: center; } + +/* OSD */ +.osd-window { + text-align: center; + font-weight: bold; + spacing: 12px; + padding: 12px 18px; + margin-bottom: 4em; } + .osd-window > * { + spacing: 8px; } + .osd-window StIcon { + icon-size: 32px; } + .osd-window StLabel:ltr { + margin-right: 6px; } + .osd-window StLabel:rtl { + margin-left: 6px; } + .osd-window .level { + margin-bottom: 4px; + min-width: 160px; + -barlevel-height: 6px; + -barlevel-background-color: rgba(255, 255, 255, 0.1); + -barlevel-active-background-color: #ffffff; + -barlevel-overdrive-color: #c01c28; + -barlevel-overdrive-separator-width: 3px; } + .osd-window .level:first-child { + margin-bottom: 0; } + .osd-window .level:ltr { + margin-right: 6px; } + .osd-window .level:rtl { + margin-left: 6px; } + +.osd-monitor-label, .osd-break-countdown-label { + background-color: -st-accent-color; + color: -st-accent-fg-color; + border-radius: 16px; + font-size: 3em; + font-weight: bold; + font-feature-settings: "tnum"; + margin: 12px; + padding: 12px; + text-align: center; + min-width: 1.5em; } + +/* Pad OSD */ +.pad-osd-window { + padding: 32px; + background-color: rgba(0, 0, 0, 0.8); } + .pad-osd-window .pad-osd-title-box { + spacing: 12px; } + .pad-osd-window .pad-osd-title-menu-box { + spacing: 6px; } + +.combo-box-label { + width: 15em; } + +/* App Switcher */ +.switcher-popup { + padding: 0; + spacing: 24px; } + +.switcher-list { + padding: 12px; + border-radius: 28px; + box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.2); } + .switcher-list .switcher-list-item-container { + spacing: 12px; } + .switcher-list .item-box { + color: #ffffff; + background-color: #2e2e33; + background-color: transparent; } + .switcher-list .item-box:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(46, 46, 51, 0.25), 5%); } + .switcher-list .item-box:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#2e2e33, 7%), 5%); } + .switcher-list .item-box:hover { + color: #ffffff; + background-color: st-lighten(#2e2e33, 7%); } + .switcher-list .item-box:active { + color: #ffffff; + background-color: st-lighten(#2e2e33, 9%); } + .switcher-list .item-box:active:hover { + background-color: st-lighten(st-lighten(#2e2e33, 9%), 7%); } + .switcher-list .item-box:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#2e2e33, 9%), 5%); } + .switcher-list .item-box:highlighted, .switcher-list .item-box:selected, .switcher-list .item-box:checked { + color: #ffffff; + background-color: st-lighten(#2e2e33, 8%); } + .switcher-list .item-box:highlighted:hover, .switcher-list .item-box:selected:hover, .switcher-list .item-box:checked:hover { + background-color: st-lighten(st-lighten(#2e2e33, 8%), 7%); } + .switcher-list .item-box:highlighted:active, .switcher-list .item-box:selected:active, .switcher-list .item-box:checked:active { + background-color: st-lighten(st-lighten(#2e2e33, 8%), 9%); } + .switcher-list .item-box:insensitive { + color: st-transparentize(#ffffff, 0.5); + background-color: #2e2e33; } + .switcher-list .item-box:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + .switcher-list .item-box:hover { + background: none; } + .switcher-list .item-box:selected { + background-color: rgba(255, 255, 255, 0.2); } + .switcher-list .separator { + width: 1px; + background: rgba(255, 255, 255, 0.1); } + .switcher-list .thumbnail-box { + padding: 2px; + spacing: 6px; } + .switcher-list .thumbnail { + width: 256px; + border-radius: 8px; } + +.switcher-arrow { + border-color: rgba(255, 255, 255, 0.8); + color: rgba(255, 255, 255, 0.8); } + .switcher-arrow:highlighted { + border-color: #ffffff; + color: #ffffff; } + +.input-source-switcher-symbol { + font-size: 34pt; + width: 96px; + height: 96px; } + +.cycler-highlight { + border: 5px solid -st-accent-color; } + +/* Workspace Switcher */ +.workspace-switcher { + margin-bottom: 4em; + spacing: 12px; + padding: 12px 18px; } + +.ws-switcher-indicator { + background-color: rgba(255, 255, 255, 0.5); + padding: 2.6666666667px; + margin: 13.3333333333px; + border-radius: 32px; } + .ws-switcher-indicator:active { + background-color: #ffffff; + padding: 5.3333333333px; + margin: 10.6666666667px; } + +.screenshot-ui-panel { + border-radius: 32px; + padding: 18px; + padding-bottom: 12px; + margin-bottom: 4em; + spacing: 12px; } + +.screenshot-ui-close-button { + padding: 6px !important; + margin-top: 12px; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2); } + .screenshot-ui-close-button.left { + margin-left: 12px; } + .screenshot-ui-close-button.right { + margin-right: 12px; } + +.screenshot-ui-type-button { + min-width: 48px; + padding: 12px 18px; + border-radius: 14px; } + .screenshot-ui-type-button .icon-label-button-container { + spacing: 0.409em; } + .screenshot-ui-type-button .icon-label-button-container > StIcon { + icon-size: 32px; } + +.screenshot-ui-capture-button { + width: 32px; + height: 32px; + border-radius: 999px; + border: 4px #ffffff; + padding: 4px; } + .screenshot-ui-capture-button .screenshot-ui-capture-button-circle { + background-color: #ffffff; + transition-duration: 200ms; + border-radius: 999px; } + .screenshot-ui-capture-button .screenshot-ui-capture-button-circle:hover, .screenshot-ui-capture-button .screenshot-ui-capture-button-circle:focus { + background-color: #4f4f54; } + .screenshot-ui-capture-button:hover .screenshot-ui-capture-button-circle, .screenshot-ui-capture-button:focus .screenshot-ui-capture-button-circle { + background-color: #cccccc; } + .screenshot-ui-capture-button:active .screenshot-ui-capture-button-circle { + background-color: gray; } + .screenshot-ui-capture-button:cast .screenshot-ui-capture-button-circle { + background-color: #c01c28; } + .screenshot-ui-capture-button:cast:hover .screenshot-ui-capture-button-circle, .screenshot-ui-capture-button:cast:focus .screenshot-ui-capture-button-circle { + background-color: #d61f2d; } + .screenshot-ui-capture-button:cast:active .screenshot-ui-capture-button-circle { + background-color: #a11722; } + +.screenshot-ui-shot-cast-container { + background-color: rgba(255, 255, 255, 0.1); + border-radius: 999px; + padding: 3px; + spacing: 3px; } + +.screenshot-ui-shot-cast-button { + padding: 6px 12px; + background-color: transparent; + border-radius: 999px; } + .screenshot-ui-shot-cast-button > StIcon { + icon-size: 16px; } + .screenshot-ui-shot-cast-button:hover, .screenshot-ui-shot-cast-button:focus { + background-color: rgba(255, 255, 255, 0.2); } + .screenshot-ui-shot-cast-button:active { + background-color: rgba(255, 255, 255, 0.5); } + .screenshot-ui-shot-cast-button:checked { + background-color: #ffffff; + color: #2e2e33; } + .screenshot-ui-shot-cast-button:insensitive { + color: rgba(255, 255, 255, 0.5); } + +.screenshot-ui-area-indicator-shade { + background-color: rgba(0, 0, 0, 0.3); } + +.screenshot-ui-area-selector .screenshot-ui-area-indicator-shade { + background-color: rgba(0, 0, 0, 0.5); } + +.screenshot-ui-area-selector .screenshot-ui-area-indicator-selection { + border: 2px white; } + +.screenshot-ui-area-selector-handle { + border-radius: 999px; + background-color: white; + box-shadow: 0 1px 3px 2px rgba(0, 0, 0, 0.2); + width: 24px; + height: 24px; } + +.screenshot-ui-window-selector { + background-color: #222226; } + .screenshot-ui-window-selector .screenshot-ui-window-selector-window-container { + margin: 100px; } + .screenshot-ui-window-selector:primary-monitor .screenshot-ui-window-selector-window-container { + margin-bottom: 200px; } + +.screenshot-ui-window-selector-window-border { + transition-duration: 200ms; + border-radius: 16px; + border: 6px transparent; } + +.screenshot-ui-window-selector-check { + transition-duration: 200ms; + color: transparent; + border-radius: 999px; + border-width: 12px; + icon-size: 24px; } + +.screenshot-ui-window-selector-window:hover .screenshot-ui-window-selector-window-border { + border-color: st-darken(-st-accent-color, 15%); } + +.screenshot-ui-window-selector-window:checked .screenshot-ui-window-selector-window-border { + border-color: -st-accent-color; + background-color: st-transparentize(-st-accent-color, 0.8); } + +.screenshot-ui-window-selector-window:checked .screenshot-ui-window-selector-check { + color: -st-accent-fg-color; + background-color: -st-accent-color; } + +.screenshot-ui-screen-selector { + transition-duration: 200ms; + background-color: rgba(0, 0, 0, 0.5); } + .screenshot-ui-screen-selector:hover { + background-color: rgba(0, 0, 0, 0.3); } + .screenshot-ui-screen-selector:active { + background-color: rgba(0, 0, 0, 0.7); } + .screenshot-ui-screen-selector:checked { + background-color: transparent; + border: 2px white; } + +.screenshot-ui-tooltip { + text-align: center; + -y-offset: 24px; } + +/* Top Bar */ +#panel { + background-color: #000000; + font-weight: bold; + height: 2.2em; + transition-duration: 250ms; } + #panel .panel-button { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; + -natural-hpadding: 12px; + -minimum-hpadding: 6px; } + #panel .panel-button:focus, #panel .panel-button:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel .panel-button:active, #panel .panel-button:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel .panel-button:active:hover, #panel .panel-button:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel .panel-button .system-status-icon { + icon-size: 1.091em; + padding: 0 6px; + margin: 0 4px; } + #panel .panel-button .panel-status-indicators-box { + spacing: 4px; } + #panel .panel-button .panel-status-indicators-box > .system-status-icon { + padding: 0; } + #panel .panel-button#panelActivities StBoxLayout { + padding: 0 0.2045em; + spacing: 5px; } + #panel .panel-button#panelActivities .workspace-dot { + border-radius: 999px; + min-width: 0.5455em; + min-height: 0.5455em; + background-color: #ffffff; } + #panel .panel-button.screen-recording-indicator StBoxLayout, #panel .panel-button.screen-sharing-indicator StBoxLayout { + spacing: 0.409em; } + #panel .panel-button.screen-recording-indicator StIcon, #panel .panel-button.screen-sharing-indicator StIcon { + icon-size: 1.091em; } + #panel .panel-button.screen-recording-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #c01c28; } + #panel .panel-button.screen-recording-indicator:focus, #panel .panel-button.screen-recording-indicator:hover { + box-shadow: inset 0 0 0 100px #d61f2d; } + #panel .panel-button.screen-recording-indicator:active, #panel .panel-button.screen-recording-indicator:checked { + box-shadow: inset 0 0 0 100px #e02a37; } + #panel .panel-button.screen-recording-indicator:active:hover, #panel .panel-button.screen-recording-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #e13340; } + #panel .panel-button.screen-sharing-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #ff7800; } + #panel .panel-button.screen-sharing-indicator:focus, #panel .panel-button.screen-sharing-indicator:hover { + box-shadow: inset 0 0 0 100px #ff861a; } + #panel .panel-button.screen-sharing-indicator:active, #panel .panel-button.screen-sharing-indicator:checked { + box-shadow: inset 0 0 0 100px #ff902e; } + #panel .panel-button.screen-sharing-indicator:active:hover, #panel .panel-button.screen-sharing-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #ff9638; } + #panel .panel-button.clock-display { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; + background: none !important; + box-shadow: none !important; + border: none !important; } + #panel .panel-button.clock-display:focus, #panel .panel-button.clock-display:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel .panel-button.clock-display:active, #panel .panel-button.clock-display:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel .panel-button.clock-display:active:hover, #panel .panel-button.clock-display:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel .panel-button.clock-display .clock { + transition-duration: 150ms; + border: 3px solid transparent; + border-radius: 999px; } + #panel .panel-button.clock-display:focus .clock, #panel .panel-button.clock-display:hover .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel .panel-button.clock-display:active .clock, #panel .panel-button.clock-display:checked .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel .panel-button.clock-display:active .clock:hover, #panel .panel-button.clock-display:checked .clock:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel .panel-button.clock-display .messages-indicator { + icon-size: 1.091em; } + #panel:overview, #panel.unlock-screen, #panel.login-screen { + background-color: transparent; } + #panel:overview .panel-button.screen-recording-indicator, #panel.unlock-screen .panel-button.screen-recording-indicator, #panel.login-screen .panel-button.screen-recording-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #c01c28; } + #panel:overview .panel-button.screen-recording-indicator:focus, #panel:overview .panel-button.screen-recording-indicator:hover, #panel.unlock-screen .panel-button.screen-recording-indicator:focus, #panel.unlock-screen .panel-button.screen-recording-indicator:hover, #panel.login-screen .panel-button.screen-recording-indicator:focus, #panel.login-screen .panel-button.screen-recording-indicator:hover { + box-shadow: inset 0 0 0 100px #d61f2d; } + #panel:overview .panel-button.screen-recording-indicator:active, #panel:overview .panel-button.screen-recording-indicator:checked, #panel.unlock-screen .panel-button.screen-recording-indicator:active, #panel.unlock-screen .panel-button.screen-recording-indicator:checked, #panel.login-screen .panel-button.screen-recording-indicator:active, #panel.login-screen .panel-button.screen-recording-indicator:checked { + box-shadow: inset 0 0 0 100px #e02a37; } + #panel:overview .panel-button.screen-recording-indicator:active:hover, #panel:overview .panel-button.screen-recording-indicator:checked:hover, #panel.unlock-screen .panel-button.screen-recording-indicator:active:hover, #panel.unlock-screen .panel-button.screen-recording-indicator:checked:hover, #panel.login-screen .panel-button.screen-recording-indicator:active:hover, #panel.login-screen .panel-button.screen-recording-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #e13340; } + #panel:overview .panel-button.screen-sharing-indicator, #panel.unlock-screen .panel-button.screen-sharing-indicator, #panel.login-screen .panel-button.screen-sharing-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #ff7800; } + #panel:overview .panel-button.screen-sharing-indicator:focus, #panel:overview .panel-button.screen-sharing-indicator:hover, #panel.unlock-screen .panel-button.screen-sharing-indicator:focus, #panel.unlock-screen .panel-button.screen-sharing-indicator:hover, #panel.login-screen .panel-button.screen-sharing-indicator:focus, #panel.login-screen .panel-button.screen-sharing-indicator:hover { + box-shadow: inset 0 0 0 100px #ff861a; } + #panel:overview .panel-button.screen-sharing-indicator:active, #panel:overview .panel-button.screen-sharing-indicator:checked, #panel.unlock-screen .panel-button.screen-sharing-indicator:active, #panel.unlock-screen .panel-button.screen-sharing-indicator:checked, #panel.login-screen .panel-button.screen-sharing-indicator:active, #panel.login-screen .panel-button.screen-sharing-indicator:checked { + box-shadow: inset 0 0 0 100px #ff902e; } + #panel:overview .panel-button.screen-sharing-indicator:active:hover, #panel:overview .panel-button.screen-sharing-indicator:checked:hover, #panel.unlock-screen .panel-button.screen-sharing-indicator:active:hover, #panel.unlock-screen .panel-button.screen-sharing-indicator:checked:hover, #panel.login-screen .panel-button.screen-sharing-indicator:active:hover, #panel.login-screen .panel-button.screen-sharing-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #ff9638; } + #panel.unlock-screen .panel-button, #panel.login-screen .panel-button { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; } + #panel.unlock-screen .panel-button:focus, #panel.unlock-screen .panel-button:hover, #panel.login-screen .panel-button:focus, #panel.login-screen .panel-button:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel.unlock-screen .panel-button:active, #panel.unlock-screen .panel-button:checked, #panel.login-screen .panel-button:active, #panel.login-screen .panel-button:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel.unlock-screen .panel-button:active:hover, #panel.unlock-screen .panel-button:checked:hover, #panel.login-screen .panel-button:active:hover, #panel.login-screen .panel-button:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel.unlock-screen .panel-button.clock-display, #panel.login-screen .panel-button.clock-display { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; + background: none !important; + box-shadow: none !important; + border: none !important; } + #panel.unlock-screen .panel-button.clock-display:focus, #panel.unlock-screen .panel-button.clock-display:hover, #panel.login-screen .panel-button.clock-display:focus, #panel.login-screen .panel-button.clock-display:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel.unlock-screen .panel-button.clock-display:active, #panel.unlock-screen .panel-button.clock-display:checked, #panel.login-screen .panel-button.clock-display:active, #panel.login-screen .panel-button.clock-display:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel.unlock-screen .panel-button.clock-display:active:hover, #panel.unlock-screen .panel-button.clock-display:checked:hover, #panel.login-screen .panel-button.clock-display:active:hover, #panel.login-screen .panel-button.clock-display:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel.unlock-screen .panel-button.clock-display .clock, #panel.login-screen .panel-button.clock-display .clock { + transition-duration: 150ms; + border: 3px solid transparent; + border-radius: 999px; } + #panel.unlock-screen .panel-button.clock-display:focus .clock, #panel.unlock-screen .panel-button.clock-display:hover .clock, #panel.login-screen .panel-button.clock-display:focus .clock, #panel.login-screen .panel-button.clock-display:hover .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel.unlock-screen .panel-button.clock-display:active .clock, #panel.unlock-screen .panel-button.clock-display:checked .clock, #panel.login-screen .panel-button.clock-display:active .clock, #panel.login-screen .panel-button.clock-display:checked .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel.unlock-screen .panel-button.clock-display:active .clock:hover, #panel.unlock-screen .panel-button.clock-display:checked .clock:hover, #panel.login-screen .panel-button.clock-display:active .clock:hover, #panel.login-screen .panel-button.clock-display:checked .clock:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel:overview .panel-button { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px transparent; } + #panel:overview .panel-button:focus, #panel:overview .panel-button:hover { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.17); } + #panel:overview .panel-button:active, #panel:overview .panel-button:checked { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.28); } + #panel:overview .panel-button:active:hover, #panel:overview .panel-button:checked:hover { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.32); } + #panel:overview .panel-button#panelActivities .workspace-dot { + background-color: #fafafb; } + #panel:overview .panel-button.clock-display { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px transparent; + background: none !important; + box-shadow: none !important; + border: none !important; } + #panel:overview .panel-button.clock-display:focus, #panel:overview .panel-button.clock-display:hover { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.17); } + #panel:overview .panel-button.clock-display:active, #panel:overview .panel-button.clock-display:checked { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.28); } + #panel:overview .panel-button.clock-display:active:hover, #panel:overview .panel-button.clock-display:checked:hover { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.32); } + #panel:overview .panel-button.clock-display .clock { + transition-duration: 150ms; + border: 3px solid transparent; + border-radius: 999px; } + #panel:overview .panel-button.clock-display:focus .clock, #panel:overview .panel-button.clock-display:hover .clock { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.17); } + #panel:overview .panel-button.clock-display:active .clock, #panel:overview .panel-button.clock-display:checked .clock { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.28); } + #panel:overview .panel-button.clock-display:active .clock:hover, #panel:overview .panel-button.clock-display:checked .clock:hover { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.32); } + #panel .panel-status-indicators-box { + spacing: 2px; } + #panel .power-status.panel-status-indicators-box { + spacing: 0; } + #panel .privacy-indicator { + color: #ff7800; } + +.clock-display-box { + spacing: 2px; } + .clock-display-box .clock { + padding-left: 0.818em; + padding-right: 0.818em; } + +/* Activities Ripple */ +.ripple-box { + background-color: rgba(255, 255, 255, 0.2); + box-shadow: 0 0 2px 2px rgba(255, 255, 255, 0.2); + width: 52px; + height: 52px; + border-radius: 0 0 52px 0; } + .ripple-box:rtl { + border-radius: 0 0 0 52px; } + +.quick-settings { + padding: 18px; + border-radius: 36px; } + .quick-settings .icon-button, .quick-settings .login-dialog-button.a11y-button, .quick-settings .login-dialog-button.cancel-button, .quick-settings .login-dialog-button.switch-user-button, .quick-settings .login-dialog-button.login-dialog-session-list-button, .quick-settings .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .quick-settings .pager-button, .quick-settings .message-notification-group .message-collapse-button, .message-notification-group .quick-settings .message-collapse-button, .quick-settings .message .message-header .message-expand-button, .message .message-header .quick-settings .message-expand-button, + .quick-settings .message .message-header .message-close-button, + .message .message-header .quick-settings .message-close-button, .quick-settings .screenshot-ui-show-pointer-button, .quick-settings .button { + padding: 10.5px; } + +.quick-settings-grid { + spacing-rows: 12px; + spacing-columns: 12px; } + +.quick-toggle, .quick-toggle-has-menu { + border-radius: 999px; + min-width: 12em; + max-width: 12em; + min-height: 3.273em; } + +.quick-toggle { + /* Move padding into the box; this is to allow menu arrows + to extend to the border */ } + .quick-toggle > StBoxLayout { + spacing: 9px; } + .quick-toggle.button { + padding: 0; } + .quick-toggle > StBoxLayout { + padding: 0 12px; } + .quick-toggle:ltr > StBoxLayout { + padding-left: 15px; } + .quick-toggle:rtl > StBoxLayout { + padding-right: 15px; } + .quick-toggle .quick-toggle-subtitle { + font-weight: normal; } + .quick-toggle .quick-toggle-icon { + icon-size: 1.091em; } + +.quick-toggle-has-menu .quick-toggle { + min-width: auto; + max-width: auto; } + .quick-toggle-has-menu .quick-toggle:ltr { + border-radius: 999px 0 0 999px; } + .quick-toggle-has-menu .quick-toggle:ltr > StBoxLayout { + padding-right: 0.6135em; } + .quick-toggle-has-menu .quick-toggle:rtl { + border-radius: 0 999px 999px 0; } + .quick-toggle-has-menu .quick-toggle:rtl > StBoxLayout { + padding-left: 0.6135em; } + .quick-toggle-has-menu .quick-toggle:ltr:last-child { + border-radius: 999px; } + .quick-toggle-has-menu .quick-toggle:rtl:last-child { + border-radius: 999px; } + +.quick-toggle-has-menu .quick-toggle-menu-button { + padding: 0.409em 0.71575em; } + .quick-toggle-has-menu .quick-toggle-menu-button:ltr { + border-radius: 0 999px 999px 0; } + .quick-toggle-has-menu .quick-toggle-menu-button:rtl { + border-radius: 999px 0 0 999px; } + +.quick-toggle-has-menu .quick-toggle-separator { + width: 1px; } + +.quick-toggle-has-menu .quick-toggle-menu-button { + color: #ffffff; + background-color: st-mix(#ffffff, #4a4a4f, 9%); } + .quick-toggle-has-menu .quick-toggle-menu-button:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#ffffff, #4a4a4f, 9%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #4a4a4f, 9%), 4%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:hover { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #4a4a4f, 9%), 4%); } + .quick-toggle-has-menu .quick-toggle-menu-button:active { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #4a4a4f, 9%), 9%); } + .quick-toggle-has-menu .quick-toggle-menu-button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4a4a4f, 9%), 9%), 4%); } + .quick-toggle-has-menu .quick-toggle-menu-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #4a4a4f, 9%), 9%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked { + color: -st-accent-fg-color; + background-color: st-mix(-st-accent-color, #ffffff, 85%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:focus { + color: -st-accent-fg-color; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + box-shadow: inset 0 0 0 2px st-transparentize(st-lighten(-st-accent-color, 30%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(-st-accent-color, #ffffff, 85%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(-st-accent-color, #ffffff, 85%), 4%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:hover { + color: -st-accent-fg-color; + background-color: st-lighten(st-mix(-st-accent-color, #ffffff, 85%), 4%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:active { + color: -st-accent-fg-color; + background-color: st-lighten(st-mix(-st-accent-color, #ffffff, 85%), 9%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:active:hover { + background-color: st-lighten(st-lighten(st-mix(-st-accent-color, #ffffff, 85%), 9%), 4%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(-st-accent-color, #ffffff, 85%), 9%), 5%); } + +.quick-toggle-has-menu:checked .quick-toggle-separator { + background-color: st-mix(-st-accent-fg-color, -st-accent-color, 30%); } + +.quick-toggle-has-menu .quick-toggle-separator { + background-color: rgba(255, 255, 255, 0.25); } + +.quick-slider > StBoxLayout { + spacing: 6px; } + +.quick-slider .icon-button, .quick-slider .login-dialog-button.a11y-button, .quick-slider .login-dialog-button.cancel-button, .quick-slider .login-dialog-button.switch-user-button, .quick-slider .login-dialog-button.login-dialog-session-list-button, .quick-slider .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .quick-slider .pager-button, .quick-slider .message-notification-group .message-collapse-button, .message-notification-group .quick-slider .message-collapse-button, .quick-slider .message .message-header .message-expand-button, .message .message-header .quick-slider .message-expand-button, +.quick-slider .message .message-header .message-close-button, +.message .message-header .quick-slider .message-close-button, .quick-slider .screenshot-ui-show-pointer-button { + padding: 6px; } + +.quick-slider .slider-bin { + padding: 6px; + border-radius: 999px; } + .quick-slider .slider-bin:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#ffffff, #36363a, 9%), 5%); } + .quick-slider .slider-bin:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #36363a, 9%), 4%), 5%); } + +.quick-toggle-menu { + border-radius: 24px; - margin: 12px 18px 0; } ++ margin: 12px 0 0; } + .quick-toggle-menu:insensitive { + color: #ffffff; + background-color: st-mix(#ffffff, #36363a, 9%); } + .quick-toggle-menu .popup-menu-item > StIcon { + -st-icon-style: symbolic; + icon-size: 1.091em; } + .quick-toggle-menu .header { + spacing-rows: 3px; + spacing-columns: 12px; + padding-bottom: 12px; } + .quick-toggle-menu .header .icon { + icon-size: 1.6365em; + border-radius: 999px; + padding: 9px; + background-color: rgba(255, 255, 255, 0.2); } + .quick-toggle-menu .header .icon.active { + background-color: -st-accent-color; + color: -st-accent-fg-color; } + +.quick-settings-system-item > StBoxLayout { + spacing: 12px; } + +.quick-settings-system-item .power-item { + min-height: 0; + min-width: 0; } + .quick-settings-system-item .power-item:insensitive { + color: #ffffff; + background-color: st-mix(#ffffff, #36363a, 9%); + background-color: transparent; } + +.nm-network-item .wireless-secure-icon { + icon-size: 0.5455em; } + +.bt-device-item .popup-menu-icon { + -st-icon-style: symbolic; } + +.bt-menu-placeholder.popup-menu-item { + text-align: center; + padding: 2em 4em; } + +.device-subtitle { + color: rgba(255, 255, 255, 0.5); } + +.keyboard-brightness-level { + spacing: 6px; } + +.background-apps-quick-toggle { + min-height: 2.728em; + background-color: transparent; } + .background-apps-quick-toggle StIcon { + icon-size: 1.091em !important; } + +.background-app-item .popup-menu-icon { + icon-size: 32px !important; + -st-icon-style: regular !important; } + +.background-app-item .icon-button, .background-app-item .login-dialog-button.a11y-button, .background-app-item .login-dialog-button.cancel-button, .background-app-item .login-dialog-button.switch-user-button, .background-app-item .login-dialog-button.login-dialog-session-list-button, .background-app-item .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .background-app-item .pager-button, .background-app-item .message-notification-group .message-collapse-button, .message-notification-group .background-app-item .message-collapse-button, .background-app-item .message .message-header .message-expand-button, .message .message-header .background-app-item .message-expand-button, +.background-app-item .message .message-header .message-close-button, +.message .message-header .background-app-item .message-close-button, .background-app-item .screenshot-ui-show-pointer-button { + padding: 6px; + background-color: rgba(255, 255, 255, 0.13); } + .background-app-item .icon-button:hover, .background-app-item .login-dialog-button.a11y-button:hover, .background-app-item .login-dialog-button.cancel-button:hover, .background-app-item .login-dialog-button.switch-user-button:hover, .background-app-item .login-dialog-button.login-dialog-session-list-button:hover, .background-app-item .calendar .calendar-month-header .pager-button:hover, .calendar .calendar-month-header .background-app-item .pager-button:hover, .background-app-item .message-notification-group .message-collapse-button:hover, .message-notification-group .background-app-item .message-collapse-button:hover, .background-app-item .message .message-header .message-expand-button:hover, .message .message-header .background-app-item .message-expand-button:hover, + .background-app-item .message .message-header .message-close-button:hover, + .message .message-header .background-app-item .message-close-button:hover, .background-app-item .screenshot-ui-show-pointer-button:hover { + background-color: rgba(255, 255, 255, 0.22); } + .background-app-item .icon-button:active, .background-app-item .login-dialog-button.a11y-button:active, .background-app-item .login-dialog-button.cancel-button:active, .background-app-item .login-dialog-button.switch-user-button:active, .background-app-item .login-dialog-button.login-dialog-session-list-button:active, .background-app-item .calendar .calendar-month-header .pager-button:active, .calendar .calendar-month-header .background-app-item .pager-button:active, .background-app-item .message-notification-group .message-collapse-button:active, .message-notification-group .background-app-item .message-collapse-button:active, .background-app-item .message .message-header .message-expand-button:active, .message .message-header .background-app-item .message-expand-button:active, + .background-app-item .message .message-header .message-close-button:active, + .message .message-header .background-app-item .message-close-button:active, .background-app-item .screenshot-ui-show-pointer-button:active { + background-color: rgba(255, 255, 255, 0.31); } + +.background-app-item .spinner { + padding: 6px; } + +.background-app-item.popup-inactive-menu-item { + color: #ffffff; } + +/* OVERVIEW */ +.secondary-monitor-workspaces { + spacing: 12px; } + +#overviewGroup { + background-color: #222226; } + +/* Window Picker */ +.window-picker { + spacing: 6px; } + +.window-close, .screenshot-ui-close-button { + background-color: rgba(63, 63, 70, 0.98); + color: #fafafb; + border-radius: 999px; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2); + padding: 3px; + height: 32px; + width: 32px; + transition-duration: 100ms; + border: 2px solid transparent; } + .window-close StIcon, .screenshot-ui-close-button StIcon { + icon-size: 24px; } + .window-close:hover, .screenshot-ui-close-button:hover { + background-color: rgba(80, 80, 89, 0.98); } + .window-close:active, .screenshot-ui-close-button:active { + background-color: rgba(94, 94, 105, 0.98); } + +.workspace-background { + border-radius: 30px; + background-color: rgba(3, 2, 1, 0); + box-shadow: 0 4px 16px 4px rgba(0, 0, 0, 0.2); } + +.search-entry { + border-radius: 999px; + margin-top: 12px; + margin-bottom: 6px; + width: 24em; } + .search-entry .search-entry-icon { + icon-size: 1.091em; + margin-top: 2px; + padding: 0 4px; } + +/* Search */ +#searchResults { + margin: 0 4px; } + +#searchResultsContent { + max-width: 1044px; } + +.search-section { + spacing: 18px; } + .search-section .search-section-separator { + height: 8px; + background-color: transparent; } + +.search-section-content { + background-color: #38383b; + color: #fafafb; + border-radius: 24px; + padding: 12px; + margin: 0 12px; + border: 2px solid transparent; } + +.list-search-result, .search-provider-icon { + color: #fafafb; + background-color: #38383b; + background-color: transparent; + border-radius: 13.2px; } + .list-search-result:focus, .search-provider-icon:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(56, 56, 59, 0.25), 5%); } + .list-search-result:focus:hover, .search-provider-icon:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#38383b, 7%), 5%); } + .list-search-result:hover, .search-provider-icon:hover { + color: #fafafb; + background-color: st-lighten(#38383b, 7%); } + .list-search-result:active, .search-provider-icon:active { + color: #fafafb; + background-color: st-lighten(#38383b, 9%); } + .list-search-result:active:hover, .search-provider-icon:active:hover { + background-color: st-lighten(st-lighten(#38383b, 9%), 7%); } + .list-search-result:active:focus, .search-provider-icon:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#38383b, 9%), 5%); } + .list-search-result:highlighted, .search-provider-icon:highlighted, .list-search-result:selected, .search-provider-icon:selected, .list-search-result:checked, .search-provider-icon:checked { + color: #fafafb; + background-color: st-lighten(#38383b, 8%); } + .list-search-result:highlighted:hover, .search-provider-icon:highlighted:hover, .list-search-result:selected:hover, .search-provider-icon:selected:hover, .list-search-result:checked:hover, .search-provider-icon:checked:hover { + background-color: st-lighten(st-lighten(#38383b, 8%), 7%); } + .list-search-result:highlighted:active, .search-provider-icon:highlighted:active, .list-search-result:selected:active, .search-provider-icon:selected:active, .list-search-result:checked:active, .search-provider-icon:checked:active { + background-color: st-lighten(st-lighten(#38383b, 8%), 9%); } + .list-search-result:insensitive, .search-provider-icon:insensitive { + color: st-transparentize(#fafafb, 0.5); + background-color: #38383b; } + .list-search-result:drop, .search-provider-icon:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + +.search-statusbox { + spacing: 24px; } + +.search-statustext { + color: rgba(250, 250, 251, 0.8); } + +.grid-search-results { + spacing: 30px; } + +.search-provider-icon:ltr { + margin-right: 4px; } + +.search-provider-icon:rtl { + margin-left: 4px; } + +.search-provider-icon .list-search-provider-content { + spacing: 12px; } + .search-provider-icon .list-search-provider-content .list-search-provider-details { + width: 120px; + color: #fafafb; } + +.list-search-results { + spacing: 6px; } + +.list-search-result .list-search-result-content { + spacing: 6px; } + +.list-search-result .list-search-result-title { + spacing: 12px; } + +.list-search-result .list-search-result-description { + color: #afafb1; } + +/* Dash */ +#dash { + padding-left: 6px; + padding-right: 6px; } + #dash .dash-background { + background-color: #38383b; + border-radius: 28px; + padding-top: 12px; + padding-bottom: 12px; + padding-left: 10px; + padding-right: 10px; } + #dash .dash-item-container .placeholder { + background-image: none; + background-size: contain; + height: 32px; } + #dash .dash-item-container .empty-dash-drop-target { + width: 32px; + height: 32px; } + #dash .dash-item-container .show-apps, + #dash .dash-item-container .overview-tile, + #dash .dash-item-container .grid-search-result { + margin: 0 2px; + padding-bottom: 12px; } + #dash .dash-item-container .show-apps .overview-icon, + #dash .dash-item-container .overview-tile .overview-icon, + #dash .dash-item-container .grid-search-result .overview-icon { + color: #fafafb; + background-color: #38383b; } + #dash .dash-item-container .show-apps:focus .overview-icon, + #dash .dash-item-container .overview-tile:focus .overview-icon, + #dash .dash-item-container .grid-search-result:focus .overview-icon { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(56, 56, 59, 0.25), 5%); } + #dash .dash-item-container .show-apps:focus .overview-icon:hover, + #dash .dash-item-container .overview-tile:focus .overview-icon:hover, + #dash .dash-item-container .grid-search-result:focus .overview-icon:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#38383b, 7%), 5%); } + #dash .dash-item-container .show-apps:hover .overview-icon, + #dash .dash-item-container .overview-tile:hover .overview-icon, + #dash .dash-item-container .grid-search-result:hover .overview-icon { + color: #fafafb; + background-color: st-lighten(#38383b, 7%); } + #dash .dash-item-container .show-apps:active .overview-icon, + #dash .dash-item-container .overview-tile:active .overview-icon, + #dash .dash-item-container .grid-search-result:active .overview-icon { + color: #fafafb; + background-color: st-lighten(#38383b, 9%); } + #dash .dash-item-container .show-apps:active .overview-icon:hover, + #dash .dash-item-container .overview-tile:active .overview-icon:hover, + #dash .dash-item-container .grid-search-result:active .overview-icon:hover { + background-color: st-lighten(st-lighten(#38383b, 9%), 7%); } + #dash .dash-item-container .show-apps:active .overview-icon:focus, + #dash .dash-item-container .overview-tile:active .overview-icon:focus, + #dash .dash-item-container .grid-search-result:active .overview-icon:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#38383b, 9%), 5%); } + #dash .dash-item-container .show-apps:checked .overview-icon, + #dash .dash-item-container .overview-tile:checked .overview-icon, + #dash .dash-item-container .grid-search-result:checked .overview-icon { + color: #fafafb; + background-color: st-lighten(#38383b, 8%); } + #dash .dash-item-container .show-apps:checked .overview-icon:hover, + #dash .dash-item-container .overview-tile:checked .overview-icon:hover, + #dash .dash-item-container .grid-search-result:checked .overview-icon:hover { + background-color: st-lighten(st-lighten(#38383b, 8%), 7%); } + #dash .dash-item-container .show-apps:checked .overview-icon:active, + #dash .dash-item-container .overview-tile:checked .overview-icon:active, + #dash .dash-item-container .grid-search-result:checked .overview-icon:active { + background-color: st-lighten(st-lighten(#38383b, 8%), 9%); } + #dash .dash-item-container .app-grid-running-dot { + offset-y: -12px; } + #dash .dash-separator { + width: 1px; + margin-left: 4px; + margin-right: 4px; + background-color: rgba(250, 250, 251, 0.1); } + #dash .dash-separator, + #dash .dash-background { + margin-bottom: 12px; } + +.dash-label { + -y-offset: 8px; } + +/* App Grid */ +.icon-grid { + row-spacing: 12px; + column-spacing: 12px; + max-row-spacing: 36px; + max-column-spacing: 36px; + page-padding-top: 24px; + page-padding-bottom: 24px; + page-padding-left: 18px; + page-padding-right: 18px; } + +/* App Icons */ +.overview-tile, .grid-search-result { + color: #fafafb; + background-color: #222226; + background-color: transparent; + border-radius: 24px; + padding: 12px; } + .overview-tile:focus, .grid-search-result:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(34, 34, 38, 0.25), 5%); } + .overview-tile:focus:hover, .grid-search-result:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#222226, 7%), 5%); } + .overview-tile:hover, .grid-search-result:hover { + color: #fafafb; + background-color: st-lighten(#222226, 7%); } + .overview-tile:active, .grid-search-result:active { + color: #fafafb; + background-color: st-lighten(#222226, 9%); } + .overview-tile:active:hover, .grid-search-result:active:hover { + background-color: st-lighten(st-lighten(#222226, 9%), 7%); } + .overview-tile:active:focus, .grid-search-result:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#222226, 9%), 5%); } + .overview-tile:highlighted, .grid-search-result:highlighted, .overview-tile:selected, .grid-search-result:selected, .overview-tile:checked, .grid-search-result:checked { + color: #fafafb; + background-color: st-lighten(#222226, 8%); } + .overview-tile:highlighted:hover, .grid-search-result:highlighted:hover, .overview-tile:selected:hover, .grid-search-result:selected:hover, .overview-tile:checked:hover, .grid-search-result:checked:hover { + background-color: st-lighten(st-lighten(#222226, 8%), 7%); } + .overview-tile:highlighted:active, .grid-search-result:highlighted:active, .overview-tile:selected:active, .grid-search-result:selected:active, .overview-tile:checked:active, .grid-search-result:checked:active { + background-color: st-lighten(st-lighten(#222226, 8%), 9%); } + .overview-tile:insensitive, .grid-search-result:insensitive { + color: st-transparentize(#fafafb, 0.5); + background-color: #222226; } + .overview-tile:drop, .grid-search-result:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + .overview-tile .overview-icon.overview-icon-with-label > StBoxLayout, .grid-search-result .overview-icon.overview-icon-with-label > StBoxLayout { + spacing: 6px; } + +.app-folder { + color: #fafafb; + background-color: st-mix(#fafafb, #222226, 9%); } + .app-folder:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#fafafb, #222226, 9%), 5%); } + .app-folder:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #222226, 9%), 4%), 5%); } + .app-folder:hover { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 9%), 4%); } + .app-folder:active { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 9%), 9%); } + .app-folder:active:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 9%), 9%), 4%); } + .app-folder:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #222226, 9%), 9%), 5%); } + .app-folder:highlighted, .app-folder:selected, .app-folder:checked { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 9%), 8%); } + .app-folder:highlighted:hover, .app-folder:selected:hover, .app-folder:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 9%), 8%), 4%); } + .app-folder:highlighted:active, .app-folder:selected:active, .app-folder:checked:active { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 9%), 8%), 9%); } + .app-folder:insensitive { + color: st-transparentize(#fafafb, 0.5); + background-color: st-darken(st-mix(#fafafb, #222226, 9%), 3%); } + .app-folder:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + +.app-grid-running-dot { + height: 5px; + width: 5px; + border-radius: 5px; + background-color: #fafafb; + offset-y: 6px; } + +.app-folder-dialog-container { + padding-top: 2.2em; } + +.app-folder-dialog { + width: 720px; + height: 720px; + border-radius: 64px; + background-color: #38383b; + color: #fafafb; + padding: 0 1px; + box-shadow: inset 0 0 0 1px rgba(250, 250, 251, 0.1); } + .app-folder-dialog .folder-name-container { + padding: 24px 36px; + padding-bottom: 0; } + .app-folder-dialog .folder-name-container .folder-name-entry { + width: 12em; } + .app-folder-dialog .icon-button, .app-folder-dialog .login-dialog-button.a11y-button, .app-folder-dialog .login-dialog-button.cancel-button, .app-folder-dialog .login-dialog-button.switch-user-button, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button, .app-folder-dialog .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .app-folder-dialog .pager-button, .app-folder-dialog .message-notification-group .message-collapse-button, .message-notification-group .app-folder-dialog .message-collapse-button, .app-folder-dialog .message .message-header .message-expand-button, .message .message-header .app-folder-dialog .message-expand-button, + .app-folder-dialog .message .message-header .message-close-button, + .message .message-header .app-folder-dialog .message-close-button, .app-folder-dialog .screenshot-ui-show-pointer-button { + color: #fafafb; + background-color: st-mix(#fafafb, #38383b, 9%); } + .app-folder-dialog .icon-button:hover, .app-folder-dialog .login-dialog-button.a11y-button:hover, .app-folder-dialog .login-dialog-button.cancel-button:hover, .app-folder-dialog .login-dialog-button.switch-user-button:hover, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:hover, .app-folder-dialog .calendar .calendar-month-header .pager-button:hover, .calendar .calendar-month-header .app-folder-dialog .pager-button:hover, .app-folder-dialog .message-notification-group .message-collapse-button:hover, .message-notification-group .app-folder-dialog .message-collapse-button:hover, .app-folder-dialog .message .message-header .message-expand-button:hover, .message .message-header .app-folder-dialog .message-expand-button:hover, + .app-folder-dialog .message .message-header .message-close-button:hover, + .message .message-header .app-folder-dialog .message-close-button:hover, .app-folder-dialog .screenshot-ui-show-pointer-button:hover { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #38383b, 9%), 4%); } + .app-folder-dialog .icon-button:active, .app-folder-dialog .login-dialog-button.a11y-button:active, .app-folder-dialog .login-dialog-button.cancel-button:active, .app-folder-dialog .login-dialog-button.switch-user-button:active, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:active, .app-folder-dialog .calendar .calendar-month-header .pager-button:active, .calendar .calendar-month-header .app-folder-dialog .pager-button:active, .app-folder-dialog .message-notification-group .message-collapse-button:active, .message-notification-group .app-folder-dialog .message-collapse-button:active, .app-folder-dialog .message .message-header .message-expand-button:active, .message .message-header .app-folder-dialog .message-expand-button:active, + .app-folder-dialog .message .message-header .message-close-button:active, + .message .message-header .app-folder-dialog .message-close-button:active, .app-folder-dialog .screenshot-ui-show-pointer-button:active { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #38383b, 9%), 9%); } + .app-folder-dialog .icon-button:active:hover, .app-folder-dialog .login-dialog-button.a11y-button:active:hover, .app-folder-dialog .login-dialog-button.cancel-button:active:hover, .app-folder-dialog .login-dialog-button.switch-user-button:active:hover, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:active:hover, .app-folder-dialog .calendar .calendar-month-header .pager-button:active:hover, .calendar .calendar-month-header .app-folder-dialog .pager-button:active:hover, .app-folder-dialog .message-notification-group .message-collapse-button:active:hover, .message-notification-group .app-folder-dialog .message-collapse-button:active:hover, .app-folder-dialog .message .message-header .message-expand-button:active:hover, .message .message-header .app-folder-dialog .message-expand-button:active:hover, + .app-folder-dialog .message .message-header .message-close-button:active:hover, + .message .message-header .app-folder-dialog .message-close-button:active:hover, .app-folder-dialog .screenshot-ui-show-pointer-button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #38383b, 9%), 9%), 4%); } + .app-folder-dialog .icon-button:active:focus, .app-folder-dialog .login-dialog-button.a11y-button:active:focus, .app-folder-dialog .login-dialog-button.cancel-button:active:focus, .app-folder-dialog .login-dialog-button.switch-user-button:active:focus, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:active:focus, .app-folder-dialog .calendar .calendar-month-header .pager-button:active:focus, .calendar .calendar-month-header .app-folder-dialog .pager-button:active:focus, .app-folder-dialog .message-notification-group .message-collapse-button:active:focus, .message-notification-group .app-folder-dialog .message-collapse-button:active:focus, .app-folder-dialog .message .message-header .message-expand-button:active:focus, .message .message-header .app-folder-dialog .message-expand-button:active:focus, + .app-folder-dialog .message .message-header .message-close-button:active:focus, + .message .message-header .app-folder-dialog .message-close-button:active:focus, .app-folder-dialog .screenshot-ui-show-pointer-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #38383b, 9%), 9%), 5%); } + .app-folder-dialog .page-indicators { + margin-bottom: 24px; } + .app-folder-dialog .page-navigation-arrow { + color: #fafafb; + background-color: #38383b; } + .app-folder-dialog .page-navigation-arrow:hover { + color: #fafafb; + background-color: st-lighten(#38383b, 7%); } + .app-folder-dialog .page-navigation-arrow:active { + color: #fafafb; + background-color: st-lighten(#38383b, 9%); } + .app-folder-dialog .page-navigation-arrow:active:hover { + background-color: st-lighten(st-lighten(#38383b, 9%), 7%); } + .app-folder-dialog .page-navigation-arrow:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#38383b, 9%), 5%); } + .app-folder-dialog .overview-tile, .app-folder-dialog .grid-search-result { + color: #fafafb; + background-color: #38383b; + background-color: transparent; } + .app-folder-dialog .overview-tile:focus, .app-folder-dialog .grid-search-result:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(56, 56, 59, 0.25), 5%); } + .app-folder-dialog .overview-tile:focus:hover, .app-folder-dialog .grid-search-result:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#38383b, 7%), 5%); } + .app-folder-dialog .overview-tile:hover, .app-folder-dialog .grid-search-result:hover { + color: #fafafb; + background-color: st-lighten(#38383b, 7%); } + .app-folder-dialog .overview-tile:active, .app-folder-dialog .grid-search-result:active { + color: #fafafb; + background-color: st-lighten(#38383b, 9%); } + .app-folder-dialog .overview-tile:active:hover, .app-folder-dialog .grid-search-result:active:hover { + background-color: st-lighten(st-lighten(#38383b, 9%), 7%); } + .app-folder-dialog .overview-tile:active:focus, .app-folder-dialog .grid-search-result:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#38383b, 9%), 5%); } + .app-folder-dialog .overview-tile:highlighted, .app-folder-dialog .grid-search-result:highlighted, .app-folder-dialog .overview-tile:selected, .app-folder-dialog .grid-search-result:selected, .app-folder-dialog .overview-tile:checked, .app-folder-dialog .grid-search-result:checked { + color: #fafafb; + background-color: st-lighten(#38383b, 8%); } + .app-folder-dialog .overview-tile:highlighted:hover, .app-folder-dialog .grid-search-result:highlighted:hover, .app-folder-dialog .overview-tile:selected:hover, .app-folder-dialog .grid-search-result:selected:hover, .app-folder-dialog .overview-tile:checked:hover, .app-folder-dialog .grid-search-result:checked:hover { + background-color: st-lighten(st-lighten(#38383b, 8%), 7%); } + .app-folder-dialog .overview-tile:highlighted:active, .app-folder-dialog .grid-search-result:highlighted:active, .app-folder-dialog .overview-tile:selected:active, .app-folder-dialog .grid-search-result:selected:active, .app-folder-dialog .overview-tile:checked:active, .app-folder-dialog .grid-search-result:checked:active { + background-color: st-lighten(st-lighten(#38383b, 8%), 9%); } + .app-folder-dialog .overview-tile:insensitive, .app-folder-dialog .grid-search-result:insensitive { + color: st-transparentize(#fafafb, 0.5); + background-color: #38383b; } + .app-folder-dialog .overview-tile:drop, .app-folder-dialog .grid-search-result:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + +.rename-folder-popup .rename-folder-popup-item { + spacing: 6px; } + .rename-folder-popup .rename-folder-popup-item:ltr, .rename-folder-popup .rename-folder-popup-item:rtl { + padding: 0 12px; } + +.page-indicator { + padding: 6px 12px 0; + transition-duration: 400ms; } + .page-indicator .page-indicator-icon { + width: 10px; + height: 10px; + border-radius: 999px; + background-color: #fafafb; + transition-duration: 400ms; } + +.apps-scroll-view { + padding: 0; } + +.system-action-icon { + background-color: rgba(250, 250, 251, 0.1); + color: #fafafb; + border-radius: 999px; + icon-size: 48px; } + +.page-navigation-hint.dnd { + background: rgba(255, 255, 255, 0.1); } + +.page-navigation-hint.next:ltr, .page-navigation-hint.previous:rtl { + background-gradient-start: rgba(255, 255, 255, 0.05); + background-gradient-end: transparent; + background-gradient-direction: horizontal; + border-radius: 24px 0px 0px 24px; } + +.page-navigation-hint.previous:ltr, .page-navigation-hint.next:rtl { + background-gradient-start: transparent; + background-gradient-end: rgba(255, 255, 255, 0.05); + background-gradient-direction: horizontal; + border-radius: 0px 24px 24px 0px; } + +.page-navigation-arrow { + margin: 6px; + padding: 18px; + width: 24px; + height: 24px; + border-radius: 999px; + transition-duration: 100ms; + color: #fafafb; + background-color: #222226; } + .page-navigation-arrow > StIcon { + color: #fafafb; } + .page-navigation-arrow:hover { + color: #fafafb; + background-color: st-lighten(#222226, 7%); } + .page-navigation-arrow:active { + color: #fafafb; + background-color: st-lighten(#222226, 9%); } + .page-navigation-arrow:active:hover { + background-color: st-lighten(st-lighten(#222226, 9%), 7%); } + .page-navigation-arrow:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#222226, 9%), 5%); } + +/* Workspace pager */ +.workspace-thumbnails { + visible-width: 32px; + spacing: 6px; + padding: 6px; } + .workspace-thumbnails .workspace-thumbnail { + color: #fafafb; + background-color: #46464e; + border-radius: 4px; + border: 1px solid transparent; } + .workspace-thumbnails .placeholder { + background-image: url("resource:///org/gnome/shell/theme/workspace-placeholder.svg"); + background-size: contain; + width: 18px; } + +.workspace-thumbnail-indicator { + border: 3px solid -st-accent-color; + border-radius: 8px; } + +.ripple-pointer-location { + width: 50px; + height: 50px; + border-radius: 25px; + background-color: st-lighten(st-transparentize(-st-accent-color, 0.7), 30%); + box-shadow: 0 0 2px 2px st-lighten(-st-accent-color, 20%); } + +.pie-timer { + width: 60px; + height: 60px; + -pie-border-width: 3px; + -pie-border-color: -st-accent-color; + -pie-background-color: st-lighten(st-transparentize(-st-accent-color, 0.7), 40%); } + +.magnifier-zoom-region { + border: 2px solid -st-accent-color; } + .magnifier-zoom-region.full-screen { + border-width: 0; } + +.select-area-rubberband { + background-color: st-transparentize(-st-accent-color, 0.7); + border: 1px solid -st-accent-color; } + +.user-icon { + background-size: contain; + border-radius: 999px; + icon-size: 64px; + background-color: rgba(255, 255, 255, 0.05); + color: #ffffff; } + .user-icon StIcon { + padding: 12px; } + .user-icon.user-avatar { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1); } + +.lightbox { + background-color: black; } + +.flashspot { + background-color: white; } + +.hidden { + color: transparent; } + +.caps-lock-warning-label { + text-align: center; + padding-bottom: 8px; + color: #cd9309; } + +/* Workspace animation */ +.workspace-animation { + background-color: #2e2e33; } + +/* Tiled window previews */ +.tile-preview { + background-color: st-transparentize(-st-accent-color, 0.5); + border: 1px solid -st-accent-color; } + +/* On-screen Keyboard */ +#keyboard { + background-color: #2e2e33; + box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.02); } + #keyboard .page-indicator { + padding: 6px; } + #keyboard .page-indicator .page-indicator-icon { + width: 8px; + height: 8px; } + +.key-container { + padding: 4px; + spacing: 4px; } + +.keyboard-key { + font-size: 1.455em; + font-weight: bold; + border-radius: 0.546em; + box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2); + color: #ffffff; + background-color: st-mix(#ffffff, #4d4d4d, 9%); } + .keyboard-key:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#ffffff, #36363a, 9%), 5%); } + .keyboard-key:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #36363a, 9%), 4%), 5%); } + .keyboard-key:hover { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 4%); } + .keyboard-key:active { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%); } + .keyboard-key:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%), 4%); } + .keyboard-key:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%), 5%); } + .keyboard-key:checked { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%); } + .keyboard-key:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%), 4%); } + .keyboard-key:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%), 9%); } + .keyboard-key.default-key { + color: #ffffff; + background-color: st-mix(#ffffff, #333333, 9%); + border: none; } + .keyboard-key.default-key:hover { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #333333, 9%), 4%); } + .keyboard-key.default-key:active { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #333333, 9%), 9%); } + .keyboard-key.default-key:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #333333, 9%), 9%), 4%); } + .keyboard-key.default-key:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #333333, 9%), 9%), 5%); } + .keyboard-key.default-key:checked { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #333333, 9%), 8%); } + .keyboard-key.default-key:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #333333, 9%), 8%), 4%); } + .keyboard-key.default-key:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #333333, 9%), 8%), 9%); } + .keyboard-key.default-key:latched { + background-color: -st-accent-color; } + .keyboard-key StIcon { + icon-size: 1.6365em; } + +.keyboard-subkeys-boxpointer { + -arrow-border-radius: 22px; + -arrow-background-color: #2e2e33; + -arrow-border-width: 1px; + -arrow-border-color: #44444c; + -arrow-base: 20px; + -arrow-rise: 10px; + -boxpointer-gap: 4px; + border-radius: 22px; + box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.1); } + .keyboard-subkeys-boxpointer .key-container { + padding: 12px; + spacing: 8px; } + +.emoji-page .keyboard-key { + background-color: transparent; + border: none; + color: initial; } + +.emoji-panel .keyboard-key:latched { + border-color: st-lighten(-st-accent-color, 5%); + background-color: -st-accent-color; } + +.word-suggestions { + spacing: 12px; + min-height: 17pt; + padding: 12px; + color: #ffffff; } + .word-suggestions StButton { + margin: 0 3px; + min-width: 32px; + border-radius: 4px; + padding: 6px 18px; + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .word-suggestions StButton:insensitive { + background-color: transparent !important; } + .word-suggestions StButton:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#ffffff, #36363a, 9%), 5%); } + .word-suggestions StButton:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #36363a, 9%), 4%), 5%); } + .word-suggestions StButton:hover { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 4%); } + .word-suggestions StButton:active { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%); } + .word-suggestions StButton:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%), 4%); } + .word-suggestions StButton:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%), 5%); } + .word-suggestions StButton:checked { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%); } + .word-suggestions StButton:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%), 4%); } + .word-suggestions StButton:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%), 9%); } + +/* Looking Glass */ +.lg-dialog StEntry { + min-height: 1.5em; } + +.lg-dialog .shell-link { + color: st-lighten(-st-accent-color, 20%); } + .lg-dialog .shell-link:hover { + color: st-lighten(st-lighten(-st-accent-color, 20%), 10%); } + .lg-dialog .shell-link:active { + color: st-darken(st-lighten(-st-accent-color, 20%), 10%); } + +.lg-dialog .actor-link { + color: st-darken(#ffffff, 20%); } + .lg-dialog .actor-link:hover { + color: #ffffff; } + .lg-dialog .actor-link:active { + color: st-lighten(#ffffff, 20%); } + .lg-dialog .actor-link StIcon { + icon-size: 12px; } + +.lg-completions-text { + font-style: italic; } + +#LookingGlassDialog { + background-color: rgba(46, 46, 51, 0.98); + color: #ffffff; + border-radius: 16px; + margin-top: 4px; + border: 2px solid transparent; + padding: 6px; + spacing: 6px; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2); } + #LookingGlassDialog > #Toolbar { + border: none; + padding: 6px; + border-radius: 0; + background-color: transparent; + spacing: 6px; } + #LookingGlassDialog > #Toolbar .lg-toolbar-button { + padding: 6px 12px; } + #LookingGlassDialog > #Toolbar .lg-toolbar-button > StIcon { + icon-size: 16px; } + #LookingGlassDialog .labels { + spacing: 6px; } + #LookingGlassDialog .notebook-tab { + background-color: transparent; + -natural-hpadding: 12px; + -minimum-hpadding: 12px; + padding: 6px 12px; } + #LookingGlassDialog .notebook-tab:selected { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #2e2e33, 9%), 9%); } + #LookingGlassDialog .notebook-tab:selected:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #2e2e33, 9%), 9%), 4%); } + #LookingGlassDialog .notebook-tab:selected:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#ffffff, #2e2e33, 9%), 9%), 5%); } + +#LookingGlassPropertyInspector { + background-color: #2e2e33; + color: #ffffff; + border-radius: 16px; + border: 1px solid rgba(255, 255, 255, 0.1); + padding: 12px; } + #LookingGlassPropertyInspector .lg-obj-inspector-title { + spacing: 4px; } + #LookingGlassPropertyInspector .lg-obj-inspector-close-button, + #LookingGlassPropertyInspector .lg-obj-inspector-button { + padding: 6px 12px; } + #LookingGlassPropertyInspector .lg-obj-inspector-close-button { + margin: 4px; + padding: 6px; + border-radius: 999px; } + #LookingGlassPropertyInspector .lg-obj-inspector-close-button > StIcon { + icon-size: 16px; } + +#LookingGlassEvaluator { + padding: 6px; } + #LookingGlassEvaluator .evaluator-results { + spacing: 6px; } + +#LookingGlassWindows { + padding: 6px; + spacing: 6px; } + #LookingGlassWindows .lg-window { + color: #ffffff; + background-color: st-mix(#ffffff, #2e2e33, 9%); + margin: 0; + padding: 12px; } + +#LookingGlassExtensions .lg-extensions-list { + padding: 6px; + spacing: 6px; } + +#LookingGlassExtensions .lg-extension { + color: #ffffff; + background-color: st-mix(#ffffff, #2e2e33, 9%); + margin: 0; + spacing: 4px; + padding: 12px; } + #LookingGlassExtensions .lg-extension .lg-extension-name { + color: #ffffff !important; } + #LookingGlassExtensions .lg-extension .lg-extension-meta { + spacing: 12px; } + +#LookingGlassExtensions .lg-extensions-none { + color: rgba(255, 255, 255, 0.5); } + +#LookingGlassActors { + padding: 6px; + spacing: 4px; } + +#LookingGlassDebugFlags .lg-debug-flags-header { + padding: 6px; + padding-top: 12px; } + +#LookingGlassDebugFlags .lg-debug-flag-button { + padding: 9px 12px; + margin-bottom: 6px; } + #LookingGlassDebugFlags .lg-debug-flag-button StLabel { + font-weight: normal !important; } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch { + background: rgba(255, 255, 255, 0.15); } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch:hover { + background: rgba(255, 255, 255, 0.2); } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch:checked { + background: -st-accent-color; + color: -st-accent-fg-color; } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch:checked:hover { + background-color: st-lighten(-st-accent-color, 5%); + color: st-lighten(-st-accent-fg-color, 5%); } + +.login-dialog, +.unlock-dialog { + color: #fafafb; } + .login-dialog .caps-lock-warning-label, + .login-dialog .login-dialog-message-warning, + .unlock-dialog .caps-lock-warning-label, + .unlock-dialog .login-dialog-message-warning { + color: #fafafb; } + .login-dialog .login-dialog-prompt-layout, + .unlock-dialog .login-dialog-prompt-layout { + width: 25em; + spacing: 9px; } + +.login-dialog-bottom-button-group { + padding: 32px; + spacing: 16px; } + +.login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button { + padding: 1.091em; } + +.login-dialog-button.cancel-button { + padding: 9px; } + +.login-dialog-button-box { + spacing: 12px; } + +.conflicting-session-dialog-content { + spacing: 20px; } + .conflicting-session-dialog-content .conflicting-session-dialog-title { + text-align: center; + margin-bottom: 5px; } + .conflicting-session-dialog-content .conflicting-session-dialog-desc { + text-align: center; } + .conflicting-session-dialog-content .conflicting-session-dialog-desc-warning { + text-align: center; + color: #cd9309; + background-color: rgba(205, 147, 9, 0.1); + padding: 9px; + border-radius: 8px; + margin: 4px 0; } + +.login-dialog-logo-bin { + margin: 3em 0; } + +.login-dialog-banner-view { + max-width: 25em; } + .login-dialog-banner-view .login-dialog-banner { + color: #dedee4; } + +.login-dialog-message { + text-align: center; } + +.login-dialog-message-hint, .login-dialog-message { + color: #dedee4; + min-height: 2.75em; } + +.login-dialog-user-selection-box { + padding-top: 4em; + padding-bottom: 8em; } + +.login-dialog-not-listed-label { + padding: 6px; } + +.login-dialog-not-listed-button { + color: #fafafb; + background-color: #222226; + padding: 0 6px; + margin: 6px; } + .login-dialog-not-listed-button:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(34, 34, 38, 0.25), 5%); } + .login-dialog-not-listed-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#222226, 7%), 5%); } + .login-dialog-not-listed-button:hover { + color: #fafafb; + background-color: st-lighten(#222226, 7%); } + .login-dialog-not-listed-button:active { + color: #fafafb; + background-color: st-lighten(#222226, 9%); } + .login-dialog-not-listed-button:active:hover { + background-color: st-lighten(st-lighten(#222226, 9%), 7%); } + .login-dialog-not-listed-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#222226, 9%), 5%); } + +.login-dialog-auth-list-view { + -st-vfade-offset: 3em; } + +.login-dialog-auth-list { + spacing: 6px; + margin-left: 2em; } + +.login-dialog-auth-list-title { + margin-left: 2em; + padding-bottom: 6px; } + +.login-dialog .login-dialog-auth-list-item { + color: #fafafb; + background-color: st-mix(#fafafb, #222226, 9%); + border-radius: 9.6px; + padding: 7.2px; } + .login-dialog .login-dialog-auth-list-item:selected, .login-dialog .login-dialog-auth-list-item:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#fafafb, #222226, 9%), 5%); } + .login-dialog .login-dialog-auth-list-item:selected:hover, .login-dialog .login-dialog-auth-list-item:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #222226, 9%), 4%), 5%); } + .login-dialog .login-dialog-auth-list-item:hover { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 9%), 4%); } + .login-dialog .login-dialog-auth-list-item:active { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 9%), 9%); } + .login-dialog .login-dialog-auth-list-item:active:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 9%), 9%), 4%); } + .login-dialog .login-dialog-auth-list-item:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #222226, 9%), 9%), 5%); } + +.unlock-dialog .login-dialog-auth-list-item { + border-radius: 9.6px; + padding: 7.2px; } + +.login-dialog-auth-list-label:ltr { + padding-left: 15px; + text-align: left; } + +.login-dialog-auth-list-label:rtl { + padding-right: 15px; + text-align: right; } + +.login-dialog-user-list-view { + width: 25em; + -st-vfade-offset: 3em; } + .login-dialog-user-list-view .login-dialog-user-list { + margin: 0 8px; + spacing: 12px; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item { + color: #fafafb; + background-color: st-mix(#fafafb, #222226, 9%); + border-radius: 16px; + padding: 9px; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:selected, .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.2) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#fafafb, #222226, 9%), 5%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:selected:hover, .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #222226, 9%), 4%), 5%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:hover { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 9%), 4%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 9%), 9%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 9%), 9%), 4%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #222226, 9%), 9%), 5%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .user-icon { + border: 2px solid transparent; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .login-dialog-timed-login-indicator { + height: 2px; + margin-top: 6px; + background-color: rgba(250, 250, 251, 0.7); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:logged-in .user-icon { + border-color: -st-accent-color; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:logged-in .user-icon StIcon { + background-color: st-transparentize(-st-accent-color, 0.7); } + +.unlock-dialog { + background-color: transparent; } + +.screen-shield-background { + background: black; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.6); } + +#lockDialogGroup { + background-color: #222226; } + +.unlock-dialog-clock { + color: #fafafb; + spacing: 2em; } + .unlock-dialog-clock .unlock-dialog-clock-time { + font-size: 6.546em; + font-weight: 800; } + .unlock-dialog-clock .unlock-dialog-clock-date { + font-weight: 400; } + .unlock-dialog-clock .unlock-dialog-clock-hint { + margin-top: 2em; + padding: 6px 18px; + border-radius: 16px; + font-weight: bold; } + +.parental-controls-shield { + spacing: 0.75em; } + .parental-controls-shield .parental-controls-shield-title { + margin-top: 0.6em; + text-align: center; } + .parental-controls-shield .parental-controls-shield-description { + text-align: center; } + .parental-controls-shield .parental-controls-shield-button { + margin-top: 0.85em; + padding: 16px 44px; + color: #fafafb; + background-color: rgba(250, 250, 251, 0.1); + border-radius: 999px; } + +#unlockDialogNotifications > .vhandle, #unlockDialogNotifications > .hhandle { + background-color: rgba(54, 54, 58, 0.3); } + #unlockDialogNotifications > .vhandle:hover, #unlockDialogNotifications > .vhandle:focus, #unlockDialogNotifications > .hhandle:hover, #unlockDialogNotifications > .hhandle:focus { + background-color: rgba(54, 54, 58, 0.5); } + #unlockDialogNotifications > .vhandle:active, #unlockDialogNotifications > .hhandle:active { + background-color: st-transparentize(-st-accent-color, 0.5); } + +.unlock-dialog-notifications-container { + margin: 12px; + spacing: 6px; + width: 25em; + background-color: transparent; } + .unlock-dialog-notifications-container .summary-notification-stack-scrollview { + padding-top: 0; + padding-bottom: 0; } + .unlock-dialog-notifications-container .message, + .unlock-dialog-notifications-container .unlock-dialog-notification-source { + padding: 12px 16px; + border: none; + background-color: rgba(250, 250, 251, 0.1); + color: #fafafb; + border-radius: 16px; } + .unlock-dialog-notifications-container .message.critical, + .unlock-dialog-notifications-container .unlock-dialog-notification-source.critical { + background-color: rgba(250, 250, 251, 0.2); } + .unlock-dialog-notifications-container .message:active, + .unlock-dialog-notifications-container .unlock-dialog-notification-source:active { + background-color: rgba(250, 250, 251, 0.1); } + .unlock-dialog-notifications-container .message StButton, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton { + background-color: transparent; } + .unlock-dialog-notifications-container .message StButton:insensitive, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:insensitive { + background-color: transparent; + opacity: 0.5; } + .unlock-dialog-notifications-container .message .message-header, + .unlock-dialog-notifications-container .unlock-dialog-notification-source .message-header { + color: #fafafb; } + +.unlock-dialog-notification-icon { + icon-size: 32px; } + +.unlock-dialog-notification-label { + padding-left: 12px; + padding-right: 0; } + .unlock-dialog-notification-label:rtl { + padding-right: 12px; + padding-left: 0; } + +.unlock-dialog-notification-count-text { + font-weight: bold; + padding: 0 12px; + color: #fafafb; + background-color: rgba(250, 250, 251, 0.1); + border-radius: 999px; } + +.login-dialog .user-widget .user-widget-label, +.unlock-dialog .user-widget .user-widget-label { + color: #fafafb; } + +.login-dialog .user-widget .user-icon, +.unlock-dialog .user-widget .user-icon { + background-color: rgba(250, 250, 251, 0.13); + color: #fafafb; } + +.login-dialog .user-widget.horizontal, +.unlock-dialog .user-widget.horizontal { + spacing: 18px; } + +.login-dialog .user-widget.vertical, +.unlock-dialog .user-widget.vertical { + spacing: 24px; } + .login-dialog .user-widget.vertical .user-widget-label, + .unlock-dialog .user-widget.vertical .user-widget-label { + font-weight: 400; + font-size: 1.818em; + text-align: center; + margin-bottom: .75em; } + .login-dialog .user-widget.vertical .user-icon, + .unlock-dialog .user-widget.vertical .user-icon { + icon-size: 160px; } + .login-dialog .user-widget.vertical .user-icon StIcon, + .unlock-dialog .user-widget.vertical .user-icon StIcon { + padding: 30px; } diff --cc data/theme/gnome-shell-high-contrast.css index 4754640ac,000000000..3e6bfc320 mode 100644,000000..100644 --- a/data/theme/gnome-shell-high-contrast.css +++ b/data/theme/gnome-shell-high-contrast.css @@@ -1,3671 -1,0 +1,3671 @@@ +/* This stylesheet is generated, DO NOT EDIT */ +/* Copyright 2009, 2015 Red Hat, Inc. + * + * Portions adapted from Mx's data/style/default.css + * Copyright 2009 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU Lesser General Public License, + * version 2.1, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for + * more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + */ +/* Global Values */ +stage { + font-size: 1em; + color: #ffffff; } + +/* Common Stylings */ +#dash .dash-item-container .show-apps, +#dash .dash-item-container .overview-tile, +#dash .dash-item-container .grid-search-result { + background: none; + box-shadow: none; + border: none; + border-radius: 0; + padding: 0; + margin: 0; } + +.app-folder-dialog .overview-tile, .app-folder-dialog .grid-search-result, .app-folder, .overview-tile, .grid-search-result, #dash .dash-item-container .show-apps .overview-icon, +#dash .dash-item-container .overview-tile .overview-icon, +#dash .dash-item-container .grid-search-result .overview-icon, .list-search-result, .search-provider-icon, .switcher-list .item-box, .audio-device-selection-dialog .audio-selection-box .audio-selection-device { + border-radius: 16px; + padding: 6px; + spacing: 6px; + text-align: center; + transition-duration: 100ms; } + +.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item, .login-dialog .login-dialog-auth-list-item, .login-dialog-not-listed-button, .unlock-dialog-notifications-container .message StButton, +.unlock-dialog-notifications-container .unlock-dialog-notification-source StButton, .parental-controls-shield .parental-controls-shield-button, .unlock-dialog .button, +.unlock-dialog .icon-button, +.unlock-dialog .message-notification-group .message-collapse-button, +.message-notification-group .unlock-dialog .message-collapse-button, +.unlock-dialog .message .message-header .message-expand-button, +.message .message-header .unlock-dialog .message-expand-button, +.unlock-dialog .message .message-header .message-close-button, +.message .message-header .unlock-dialog .message-close-button, +.unlock-dialog .screenshot-ui-show-pointer-button, .unlock-dialog .login-dialog-auth-list-item, #LookingGlassDialog .notebook-tab, .screenshot-ui-show-pointer-button, .screenshot-ui-type-button, #LookingGlassDebugFlags .lg-debug-flag-button, #LookingGlassPropertyInspector .lg-obj-inspector-close-button, +#LookingGlassPropertyInspector .lg-obj-inspector-button, #LookingGlassDialog > #Toolbar .lg-toolbar-button, .icon-button, .login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button, .message-notification-group .message-collapse-button, .calendar .calendar-month-header .pager-button, .button { + border-radius: 8px; + padding: 3px 24px; + font-weight: bold; + transition: border-width 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + +.icon-button, .login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button, .screenshot-ui-show-pointer-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button, .message-notification-group .message-collapse-button, .calendar .calendar-month-header .pager-button, .button { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #1a1a1a, 9%), #ffffff, 87%); } + .icon-button:focus, .login-dialog-button.a11y-button:focus, .login-dialog-button.cancel-button:focus, .login-dialog-button.switch-user-button:focus, .login-dialog-button.login-dialog-session-list-button:focus, .screenshot-ui-show-pointer-button:focus, .message .message-header .message-expand-button:focus, + .message .message-header .message-close-button:focus, .message-notification-group .message-collapse-button:focus, .calendar .calendar-month-header .pager-button:focus, .button:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(#ffffff, #1a1a1a, 9%), #ffffff, 87%), 5%); } + .icon-button:focus:hover, .login-dialog-button.a11y-button:focus:hover, .login-dialog-button.cancel-button:focus:hover, .login-dialog-button.switch-user-button:focus:hover, .login-dialog-button.login-dialog-session-list-button:focus:hover, .screenshot-ui-show-pointer-button:focus:hover, .message .message-header .message-expand-button:focus:hover, + .message .message-header .message-close-button:focus:hover, .message-notification-group .message-collapse-button:focus:hover, .calendar .calendar-month-header .pager-button:focus:hover, .button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 4%), #ffffff, 87%), 5%); } + .icon-button:hover, .login-dialog-button.a11y-button:hover, .login-dialog-button.cancel-button:hover, .login-dialog-button.switch-user-button:hover, .login-dialog-button.login-dialog-session-list-button:hover, .screenshot-ui-show-pointer-button:hover, .message .message-header .message-expand-button:hover, + .message .message-header .message-close-button:hover, .message-notification-group .message-collapse-button:hover, .calendar .calendar-month-header .pager-button:hover, .button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 4%), #ffffff, 87%); } + .icon-button:insensitive, .login-dialog-button.a11y-button:insensitive, .login-dialog-button.cancel-button:insensitive, .login-dialog-button.switch-user-button:insensitive, .login-dialog-button.login-dialog-session-list-button:insensitive, .screenshot-ui-show-pointer-button:insensitive, .message .message-header .message-expand-button:insensitive, + .message .message-header .message-close-button:insensitive, .message-notification-group .message-collapse-button:insensitive, .calendar .calendar-month-header .pager-button:insensitive, .button:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(st-mix(#ffffff, #1a1a1a, 9%), 3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .icon-button:selected, .login-dialog-button.a11y-button:selected, .login-dialog-button.cancel-button:selected, .login-dialog-button.switch-user-button:selected, .login-dialog-button.login-dialog-session-list-button:selected, .screenshot-ui-show-pointer-button:selected, .message .message-header .message-expand-button:selected, + .message .message-header .message-close-button:selected, .message-notification-group .message-collapse-button:selected, .calendar .calendar-month-header .pager-button:selected, .button:selected, .icon-button:active, .login-dialog-button.a11y-button:active, .login-dialog-button.cancel-button:active, .login-dialog-button.switch-user-button:active, .login-dialog-button.login-dialog-session-list-button:active, .screenshot-ui-show-pointer-button:active, .message .message-header .message-expand-button:active, + .message .message-header .message-close-button:active, .message-notification-group .message-collapse-button:active, .calendar .calendar-month-header .pager-button:active, .button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 9%), #ffffff, 87%); } + .icon-button:selected:hover, .login-dialog-button.a11y-button:selected:hover, .login-dialog-button.cancel-button:selected:hover, .login-dialog-button.switch-user-button:selected:hover, .login-dialog-button.login-dialog-session-list-button:selected:hover, .screenshot-ui-show-pointer-button:selected:hover, .message .message-header .message-expand-button:selected:hover, + .message .message-header .message-close-button:selected:hover, .message-notification-group .message-collapse-button:selected:hover, .calendar .calendar-month-header .pager-button:selected:hover, .button:selected:hover, .icon-button:active:hover, .login-dialog-button.a11y-button:active:hover, .login-dialog-button.cancel-button:active:hover, .login-dialog-button.switch-user-button:active:hover, .login-dialog-button.login-dialog-session-list-button:active:hover, .screenshot-ui-show-pointer-button:active:hover, .message .message-header .message-expand-button:active:hover, + .message .message-header .message-close-button:active:hover, .message-notification-group .message-collapse-button:active:hover, .calendar .calendar-month-header .pager-button:active:hover, .button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 9%), 4%); } + .icon-button:selected:focus, .login-dialog-button.a11y-button:selected:focus, .login-dialog-button.cancel-button:selected:focus, .login-dialog-button.switch-user-button:selected:focus, .login-dialog-button.login-dialog-session-list-button:selected:focus, .screenshot-ui-show-pointer-button:selected:focus, .message .message-header .message-expand-button:selected:focus, + .message .message-header .message-close-button:selected:focus, .message-notification-group .message-collapse-button:selected:focus, .calendar .calendar-month-header .pager-button:selected:focus, .button:selected:focus, .icon-button:active:focus, .login-dialog-button.a11y-button:active:focus, .login-dialog-button.cancel-button:active:focus, .login-dialog-button.switch-user-button:active:focus, .login-dialog-button.login-dialog-session-list-button:active:focus, .screenshot-ui-show-pointer-button:active:focus, .message .message-header .message-expand-button:active:focus, + .message .message-header .message-close-button:active:focus, .message-notification-group .message-collapse-button:active:focus, .calendar .calendar-month-header .pager-button:active:focus, .button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 9%), #ffffff, 87%), 5%); } + .icon-button:checked, .login-dialog-button.a11y-button:checked, .login-dialog-button.cancel-button:checked, .login-dialog-button.switch-user-button:checked, .login-dialog-button.login-dialog-session-list-button:checked, .screenshot-ui-show-pointer-button:checked, .message .message-header .message-expand-button:checked, + .message .message-header .message-close-button:checked, .message-notification-group .message-collapse-button:checked, .calendar .calendar-month-header .pager-button:checked, .button:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), #ffffff, 87%); } + .icon-button:checked:hover, .login-dialog-button.a11y-button:checked:hover, .login-dialog-button.cancel-button:checked:hover, .login-dialog-button.switch-user-button:checked:hover, .login-dialog-button.login-dialog-session-list-button:checked:hover, .screenshot-ui-show-pointer-button:checked:hover, .message .message-header .message-expand-button:checked:hover, + .message .message-header .message-close-button:checked:hover, .message-notification-group .message-collapse-button:checked:hover, .calendar .calendar-month-header .pager-button:checked:hover, .button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), 4%); } + .icon-button:checked:active, .login-dialog-button.a11y-button:checked:active, .login-dialog-button.cancel-button:checked:active, .login-dialog-button.switch-user-button:checked:active, .login-dialog-button.login-dialog-session-list-button:checked:active, .screenshot-ui-show-pointer-button:checked:active, .message .message-header .message-expand-button:checked:active, + .message .message-header .message-close-button:checked:active, .message-notification-group .message-collapse-button:checked:active, .calendar .calendar-month-header .pager-button:checked:active, .button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), 9%); } + +.calendar .calendar-day-heading, .calendar .calendar-day, .calendar .calendar-month-header .calendar-month-label, .icon-button.flat, .flat.login-dialog-button.a11y-button, .flat.login-dialog-button.cancel-button, .flat.login-dialog-button.switch-user-button, .flat.login-dialog-button.login-dialog-session-list-button, .flat.screenshot-ui-show-pointer-button, .message .message-header .flat.message-expand-button, +.message .message-header .flat.message-close-button, .message-notification-group .flat.message-collapse-button, .calendar .calendar-month-header .pager-button, .button.flat { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #1a1a1a; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .calendar .calendar-day-heading:focus, .calendar .calendar-day:focus, .calendar .calendar-month-header .calendar-month-label:focus, .icon-button.flat:focus, .flat.login-dialog-button.a11y-button:focus, .flat.login-dialog-button.cancel-button:focus, .flat.login-dialog-button.switch-user-button:focus, .flat.login-dialog-button.login-dialog-session-list-button:focus, .flat.screenshot-ui-show-pointer-button:focus, .message .message-header .flat.message-expand-button:focus, + .message .message-header .flat.message-close-button:focus, .message-notification-group .flat.message-collapse-button:focus, .calendar .calendar-month-header .pager-button:focus, .button.flat:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(26, 26, 26, 0.25), 5%); } + .calendar .calendar-day-heading:focus:hover, .calendar .calendar-day:focus:hover, .calendar .calendar-month-header .calendar-month-label:focus:hover, .icon-button.flat:focus:hover, .flat.login-dialog-button.a11y-button:focus:hover, .flat.login-dialog-button.cancel-button:focus:hover, .flat.login-dialog-button.switch-user-button:focus:hover, .flat.login-dialog-button.login-dialog-session-list-button:focus:hover, .flat.screenshot-ui-show-pointer-button:focus:hover, .message .message-header .flat.message-expand-button:focus:hover, + .message .message-header .flat.message-close-button:focus:hover, .message-notification-group .flat.message-collapse-button:focus:hover, .calendar .calendar-month-header .pager-button:focus:hover, .button.flat:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#1a1a1a, 7%), #ffffff, 87%), 5%); } + .calendar .calendar-day-heading:hover, .calendar .calendar-day:hover, .calendar .calendar-month-header .calendar-month-label:hover, .icon-button.flat:hover, .flat.login-dialog-button.a11y-button:hover, .flat.login-dialog-button.cancel-button:hover, .flat.login-dialog-button.switch-user-button:hover, .flat.login-dialog-button.login-dialog-session-list-button:hover, .flat.screenshot-ui-show-pointer-button:hover, .message .message-header .flat.message-expand-button:hover, + .message .message-header .flat.message-close-button:hover, .message-notification-group .flat.message-collapse-button:hover, .calendar .calendar-month-header .pager-button:hover, .button.flat:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#1a1a1a, 7%), #ffffff, 87%); } + .calendar .calendar-day-heading:insensitive, .calendar .calendar-day:insensitive, .calendar .calendar-month-header .calendar-month-label:insensitive, .icon-button.flat:insensitive, .flat.login-dialog-button.a11y-button:insensitive, .flat.login-dialog-button.cancel-button:insensitive, .flat.login-dialog-button.switch-user-button:insensitive, .flat.login-dialog-button.login-dialog-session-list-button:insensitive, .flat.screenshot-ui-show-pointer-button:insensitive, .message .message-header .flat.message-expand-button:insensitive, + .message .message-header .flat.message-close-button:insensitive, .message-notification-group .flat.message-collapse-button:insensitive, .calendar .calendar-month-header .pager-button:insensitive, .button.flat:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: #1a1a1a; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .calendar .calendar-day-heading:selected, .calendar .calendar-day:selected, .calendar .calendar-month-header .calendar-month-label:selected, .icon-button.flat:selected, .flat.login-dialog-button.a11y-button:selected, .flat.login-dialog-button.cancel-button:selected, .flat.login-dialog-button.switch-user-button:selected, .flat.login-dialog-button.login-dialog-session-list-button:selected, .flat.screenshot-ui-show-pointer-button:selected, .message .message-header .flat.message-expand-button:selected, + .message .message-header .flat.message-close-button:selected, .message-notification-group .flat.message-collapse-button:selected, .calendar .calendar-month-header .pager-button:selected, .button.flat:selected, .calendar .calendar-day-heading:active, .calendar .calendar-day:active, .calendar .calendar-month-header .calendar-month-label:active, .icon-button.flat:active, .flat.login-dialog-button.a11y-button:active, .flat.login-dialog-button.cancel-button:active, .flat.login-dialog-button.switch-user-button:active, .flat.login-dialog-button.login-dialog-session-list-button:active, .flat.screenshot-ui-show-pointer-button:active, .message .message-header .flat.message-expand-button:active, + .message .message-header .flat.message-close-button:active, .message-notification-group .flat.message-collapse-button:active, .calendar .calendar-month-header .pager-button:active, .button.flat:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#1a1a1a, 9%), #ffffff, 87%); } + .calendar .calendar-day-heading:selected:hover, .calendar .calendar-day:selected:hover, .calendar .calendar-month-header .calendar-month-label:selected:hover, .icon-button.flat:selected:hover, .flat.login-dialog-button.a11y-button:selected:hover, .flat.login-dialog-button.cancel-button:selected:hover, .flat.login-dialog-button.switch-user-button:selected:hover, .flat.login-dialog-button.login-dialog-session-list-button:selected:hover, .flat.screenshot-ui-show-pointer-button:selected:hover, .message .message-header .flat.message-expand-button:selected:hover, + .message .message-header .flat.message-close-button:selected:hover, .message-notification-group .flat.message-collapse-button:selected:hover, .calendar .calendar-month-header .pager-button:selected:hover, .button.flat:selected:hover, .calendar .calendar-day-heading:active:hover, .calendar .calendar-day:active:hover, .calendar .calendar-month-header .calendar-month-label:active:hover, .icon-button.flat:active:hover, .flat.login-dialog-button.a11y-button:active:hover, .flat.login-dialog-button.cancel-button:active:hover, .flat.login-dialog-button.switch-user-button:active:hover, .flat.login-dialog-button.login-dialog-session-list-button:active:hover, .flat.screenshot-ui-show-pointer-button:active:hover, .message .message-header .flat.message-expand-button:active:hover, + .message .message-header .flat.message-close-button:active:hover, .message-notification-group .flat.message-collapse-button:active:hover, .calendar .calendar-month-header .pager-button:active:hover, .button.flat:active:hover { + background-color: st-lighten(st-lighten(#1a1a1a, 9%), 7%); } + .calendar .calendar-day-heading:selected:focus, .calendar .calendar-day:selected:focus, .calendar .calendar-month-header .calendar-month-label:selected:focus, .icon-button.flat:selected:focus, .flat.login-dialog-button.a11y-button:selected:focus, .flat.login-dialog-button.cancel-button:selected:focus, .flat.login-dialog-button.switch-user-button:selected:focus, .flat.login-dialog-button.login-dialog-session-list-button:selected:focus, .flat.screenshot-ui-show-pointer-button:selected:focus, .message .message-header .flat.message-expand-button:selected:focus, + .message .message-header .flat.message-close-button:selected:focus, .message-notification-group .flat.message-collapse-button:selected:focus, .calendar .calendar-month-header .pager-button:selected:focus, .button.flat:selected:focus, .calendar .calendar-day-heading:active:focus, .calendar .calendar-day:active:focus, .calendar .calendar-month-header .calendar-month-label:active:focus, .icon-button.flat:active:focus, .flat.login-dialog-button.a11y-button:active:focus, .flat.login-dialog-button.cancel-button:active:focus, .flat.login-dialog-button.switch-user-button:active:focus, .flat.login-dialog-button.login-dialog-session-list-button:active:focus, .flat.screenshot-ui-show-pointer-button:active:focus, .message .message-header .flat.message-expand-button:active:focus, + .message .message-header .flat.message-close-button:active:focus, .message-notification-group .flat.message-collapse-button:active:focus, .calendar .calendar-month-header .pager-button:active:focus, .button.flat:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#1a1a1a, 9%), #ffffff, 87%), 5%); } + .calendar .calendar-day-heading:checked, .calendar .calendar-day:checked, .calendar .calendar-month-header .calendar-month-label:checked, .icon-button.flat:checked, .flat.login-dialog-button.a11y-button:checked, .flat.login-dialog-button.cancel-button:checked, .flat.login-dialog-button.switch-user-button:checked, .flat.login-dialog-button.login-dialog-session-list-button:checked, .flat.screenshot-ui-show-pointer-button:checked, .message .message-header .flat.message-expand-button:checked, + .message .message-header .flat.message-close-button:checked, .message-notification-group .flat.message-collapse-button:checked, .calendar .calendar-month-header .pager-button:checked, .button.flat:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#1a1a1a, 8%), #ffffff, 87%); } + .calendar .calendar-day-heading:checked:hover, .calendar .calendar-day:checked:hover, .calendar .calendar-month-header .calendar-month-label:checked:hover, .icon-button.flat:checked:hover, .flat.login-dialog-button.a11y-button:checked:hover, .flat.login-dialog-button.cancel-button:checked:hover, .flat.login-dialog-button.switch-user-button:checked:hover, .flat.login-dialog-button.login-dialog-session-list-button:checked:hover, .flat.screenshot-ui-show-pointer-button:checked:hover, .message .message-header .flat.message-expand-button:checked:hover, + .message .message-header .flat.message-close-button:checked:hover, .message-notification-group .flat.message-collapse-button:checked:hover, .calendar .calendar-month-header .pager-button:checked:hover, .button.flat:checked:hover { + background-color: st-lighten(st-lighten(#1a1a1a, 8%), 7%); } + .calendar .calendar-day-heading:checked:active, .calendar .calendar-day:checked:active, .calendar .calendar-month-header .calendar-month-label:checked:active, .icon-button.flat:checked:active, .flat.login-dialog-button.a11y-button:checked:active, .flat.login-dialog-button.cancel-button:checked:active, .flat.login-dialog-button.switch-user-button:checked:active, .flat.login-dialog-button.login-dialog-session-list-button:checked:active, .flat.screenshot-ui-show-pointer-button:checked:active, .message .message-header .flat.message-expand-button:checked:active, + .message .message-header .flat.message-close-button:checked:active, .message-notification-group .flat.message-collapse-button:checked:active, .calendar .calendar-month-header .pager-button:checked:active, .button.flat:checked:active { + background-color: st-lighten(st-lighten(#1a1a1a, 8%), 9%); } + +.keyboard-brightness-level .button:checked, .quick-toggle:checked, .calendar .calendar-day.calendar-today, .icon-button.default, .default.login-dialog-button.a11y-button, .default.login-dialog-button.cancel-button, .default.login-dialog-button.switch-user-button, .default.login-dialog-button.login-dialog-session-list-button, .default.screenshot-ui-show-pointer-button, .message .message-header .default.message-expand-button, +.message .message-header .default.message-close-button, .message-notification-group .default.message-collapse-button, .calendar .calendar-month-header .default.pager-button, .button.default { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + color: -st-accent-fg-color; + background-color: st-mix(-st-accent-color, #ffffff, 87%); } + .keyboard-brightness-level .button:focus:checked, .quick-toggle:focus:checked, .calendar .calendar-day.calendar-today:focus, .icon-button.default:focus, .default.login-dialog-button.a11y-button:focus, .default.login-dialog-button.cancel-button:focus, .default.login-dialog-button.switch-user-button:focus, .default.login-dialog-button.login-dialog-session-list-button:focus, .default.screenshot-ui-show-pointer-button:focus, .message .message-header .default.message-expand-button:focus, + .message .message-header .default.message-close-button:focus, .message-notification-group .default.message-collapse-button:focus, .calendar .calendar-month-header .default.pager-button:focus, .button.default:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + color: -st-accent-fg-color; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + box-shadow: inset 0 0 0 2px st-transparentize(st-lighten(-st-accent-color, 30%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(-st-accent-color, #ffffff, 87%), 5%); } + .keyboard-brightness-level .button:focus:hover:checked, .quick-toggle:focus:hover:checked, .calendar .calendar-day.calendar-today:focus:hover, .icon-button.default:focus:hover, .default.login-dialog-button.a11y-button:focus:hover, .default.login-dialog-button.cancel-button:focus:hover, .default.login-dialog-button.switch-user-button:focus:hover, .default.login-dialog-button.login-dialog-session-list-button:focus:hover, .default.screenshot-ui-show-pointer-button:focus:hover, .message .message-header .default.message-expand-button:focus:hover, + .message .message-header .default.message-close-button:focus:hover, .message-notification-group .default.message-collapse-button:focus:hover, .calendar .calendar-month-header .default.pager-button:focus:hover, .button.default:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(-st-accent-color, 4%), #ffffff, 87%), 5%); } + .keyboard-brightness-level .button:hover:checked, .quick-toggle:hover:checked, .calendar .calendar-day.calendar-today:hover, .icon-button.default:hover, .default.login-dialog-button.a11y-button:hover, .default.login-dialog-button.cancel-button:hover, .default.login-dialog-button.switch-user-button:hover, .default.login-dialog-button.login-dialog-session-list-button:hover, .default.screenshot-ui-show-pointer-button:hover, .message .message-header .default.message-expand-button:hover, + .message .message-header .default.message-close-button:hover, .message-notification-group .default.message-collapse-button:hover, .calendar .calendar-month-header .default.pager-button:hover, .button.default:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + color: -st-accent-fg-color; + background-color: st-mix(st-lighten(-st-accent-color, 4%), #ffffff, 87%); } + .keyboard-brightness-level .button:insensitive:checked, .quick-toggle:insensitive:checked, .calendar .calendar-day.calendar-today:insensitive, .icon-button.default:insensitive, .default.login-dialog-button.a11y-button:insensitive, .default.login-dialog-button.cancel-button:insensitive, .default.login-dialog-button.switch-user-button:insensitive, .default.login-dialog-button.login-dialog-session-list-button:insensitive, .default.screenshot-ui-show-pointer-button:insensitive, .message .message-header .default.message-expand-button:insensitive, + .message .message-header .default.message-close-button:insensitive, .message-notification-group .default.message-collapse-button:insensitive, .calendar .calendar-month-header .default.pager-button:insensitive, .button.default:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + color: st-transparentize(-st-accent-fg-color, 0.5); + background-color: st-darken(-st-accent-color, 3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .keyboard-brightness-level .button:active:checked, .quick-toggle:active:checked, .calendar .calendar-day.calendar-today:active, .icon-button.default:active, .default.login-dialog-button.a11y-button:active, .default.login-dialog-button.cancel-button:active, .default.login-dialog-button.switch-user-button:active, .default.login-dialog-button.login-dialog-session-list-button:active, .default.screenshot-ui-show-pointer-button:active, .message .message-header .default.message-expand-button:active, + .message .message-header .default.message-close-button:active, .message-notification-group .default.message-collapse-button:active, .calendar .calendar-month-header .default.pager-button:active, .button.default:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + color: -st-accent-fg-color; + background-color: st-mix(st-lighten(-st-accent-color, 9%), #ffffff, 87%); } + .keyboard-brightness-level .button:active:hover:checked, .quick-toggle:active:hover:checked, .calendar .calendar-day.calendar-today:active:hover, .icon-button.default:active:hover, .default.login-dialog-button.a11y-button:active:hover, .default.login-dialog-button.cancel-button:active:hover, .default.login-dialog-button.switch-user-button:active:hover, .default.login-dialog-button.login-dialog-session-list-button:active:hover, .default.screenshot-ui-show-pointer-button:active:hover, .message .message-header .default.message-expand-button:active:hover, + .message .message-header .default.message-close-button:active:hover, .message-notification-group .default.message-collapse-button:active:hover, .calendar .calendar-month-header .default.pager-button:active:hover, .button.default:active:hover { + background-color: st-lighten(st-lighten(-st-accent-color, 9%), 4%); } + .keyboard-brightness-level .button:active:focus:checked, .quick-toggle:active:focus:checked, .calendar .calendar-day.calendar-today:active:focus, .icon-button.default:active:focus, .default.login-dialog-button.a11y-button:active:focus, .default.login-dialog-button.cancel-button:active:focus, .default.login-dialog-button.switch-user-button:active:focus, .default.login-dialog-button.login-dialog-session-list-button:active:focus, .default.screenshot-ui-show-pointer-button:active:focus, .message .message-header .default.message-expand-button:active:focus, + .message .message-header .default.message-close-button:active:focus, .message-notification-group .default.message-collapse-button:active:focus, .calendar .calendar-month-header .default.pager-button:active:focus, .button.default:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(-st-accent-color, 9%), #ffffff, 87%), 5%); } + +.popup-sub-menu .popup-menu-item, .popup-menu-item { + font-weight: normal; + spacing: 6px; + transition-duration: 100ms; + padding: 9px 12px; } + +#LookingGlassExtensions .lg-extension, #LookingGlassWindows .lg-window, .calendar, .datemenu-today-button, .quick-toggle-menu, .message, .events-button, +.world-clocks-button, +.weather-button { + border-radius: 12px; + padding: 0.818em; + margin: 4px; + background-color: #1a1a1a; + box-shadow: 0 1px 2px 0 transparent; + border: 1px solid #1a1a1a; + border-color: transparent; + box-shadow: none; } + +.quick-toggle-menu, .message, .events-button, +.world-clocks-button, +.weather-button { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(#1a1a1a, #ffffff, 87%); } + .quick-toggle-menu:hover, .message:hover, .events-button:hover, + .world-clocks-button:hover, + .weather-button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#1a1a1a, 4%), #ffffff, 87%); } + .quick-toggle-menu:active, .message:active, .events-button:active, + .world-clocks-button:active, + .weather-button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#1a1a1a, 9%), #ffffff, 87%); } + .quick-toggle-menu:active:hover, .message:active:hover, .events-button:active:hover, + .world-clocks-button:active:hover, + .weather-button:active:hover { + background-color: st-lighten(st-lighten(#1a1a1a, 9%), 4%); } + .quick-toggle-menu:active:focus, .message:active:focus, .events-button:active:focus, + .world-clocks-button:active:focus, + .weather-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#1a1a1a, 9%), #ffffff, 87%), 5%); } + .quick-toggle-menu:focus, .message:focus, .events-button:focus, + .world-clocks-button:focus, + .weather-button:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#1a1a1a, #ffffff, 87%), 5%); } + .quick-toggle-menu:focus:hover, .message:focus:hover, .events-button:focus:hover, + .world-clocks-button:focus:hover, + .weather-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#1a1a1a, 4%), #ffffff, 87%), 5%); } + .quick-toggle-menu:insensitive, .message:insensitive, .events-button:insensitive, + .world-clocks-button:insensitive, + .weather-button:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(#1a1a1a, 3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + +.calendar, .datemenu-today-button { + border: 1px solid transparent !important; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .calendar:insensitive, .datemenu-today-button:insensitive { + background-color: transparent !important; } + .calendar:hover, .datemenu-today-button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#1a1a1a, 7%), #ffffff, 87%); } + .calendar:active, .datemenu-today-button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#1a1a1a, 9%), #ffffff, 87%); } + .calendar:active:hover, .datemenu-today-button:active:hover { + background-color: st-lighten(st-lighten(#1a1a1a, 9%), 7%); } + .calendar:active:focus, .datemenu-today-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#1a1a1a, 9%), #ffffff, 87%), 5%); } + .calendar:focus, .datemenu-today-button:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(#1a1a1a, #ffffff, 87%), 5%); } + .calendar:focus:hover, .datemenu-today-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#1a1a1a, 4%), #ffffff, 87%), 5%); } + .calendar:insensitive, .datemenu-today-button:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(#1a1a1a, 3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + +.unlock-dialog .login-dialog-prompt-entry, .login-dialog .login-dialog-prompt-entry, .app-folder-dialog .folder-name-container .folder-name-entry, .search-entry, .lg-dialog StEntry, StEntry { + border-radius: 8px; + padding: 9px 9px; + selection-background-color: st-transparentize(-st-accent-color, 0.7); + selected-color: #ffffff; } + +StEntry { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: #2e2e2e; + color: rgba(255, 255, 255, 0.7); } + StEntry:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: #383838; + color: #ffffff; } + StEntry:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), #2e2e2e, 5%); + color: #ffffff; } + StEntry:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: #262626; + color: rgba(255, 255, 255, 0.5); } + StEntry StLabel.hint-text { + color: rgba(255, 255, 255, 0.7); } + +.notification-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button { + font-weight: bold; + padding: 6px 12px; + border-radius: 8px; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(rgba(255, 255, 255, 0.15), #ffffff, 87%); } + .notification-button:focus, .message .message-header .message-expand-button:focus, + .message .message-header .message-close-button:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(rgba(255, 255, 255, 0.15), #ffffff, 87%), 5%); } + .notification-button:focus:hover, .message .message-header .message-expand-button:focus:hover, + .message .message-header .message-close-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(rgba(255, 255, 255, 0.3), #ffffff, 87%), 5%); } + .notification-button:hover, .message .message-header .message-expand-button:hover, + .message .message-header .message-close-button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(rgba(255, 255, 255, 0.3), #ffffff, 87%); } + .notification-button:active, .message .message-header .message-expand-button:active, + .message .message-header .message-close-button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(rgba(255, 255, 255, 0.2), #ffffff, 87%); } + .notification-button:active:hover, .message .message-header .message-expand-button:active:hover, + .message .message-header .message-close-button:active:hover { + background-color: rgba(255, 255, 255, 0.2); } + .notification-button:active:focus, .message .message-header .message-expand-button:active:focus, + .message .message-header .message-close-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(rgba(255, 255, 255, 0.2), #ffffff, 87%), 5%); } + .notification-button:checked, .message .message-header .message-expand-button:checked, + .message .message-header .message-close-button:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), #ffffff, 87%); } + .notification-button:checked:hover, .message .message-header .message-expand-button:checked:hover, + .message .message-header .message-close-button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), 4%); } + .notification-button:checked:active, .message .message-header .message-expand-button:checked:active, + .message .message-header .message-close-button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), 9%); } + .notification-button:insensitive, .message .message-header .message-expand-button:insensitive, + .message .message-header .message-close-button:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: rgba(255, 255, 255, 0.1); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + +.modal-dialog .modal-dialog-button-box .modal-dialog-button { + font-weight: bold; + padding: 12px; + border-radius: 12px; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(rgba(255, 255, 255, 0.1), #ffffff, 87%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(rgba(255, 255, 255, 0.1), #ffffff, 87%), 5%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(rgba(255, 255, 255, 0.13), #ffffff, 87%), 5%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(rgba(255, 255, 255, 0.13), #ffffff, 87%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(rgba(255, 255, 255, 0.16), #ffffff, 87%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:active:hover { + background-color: rgba(255, 255, 255, 0.19); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(rgba(255, 255, 255, 0.16), #ffffff, 87%), 5%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), #ffffff, 87%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), 4%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), 9%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(st-mix(#ffffff, #1a1a1a, 9%), 3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + +.dash-label, .window-caption, .screenshot-ui-tooltip { + background-color: rgba(0, 0, 0, 0.9); + border: 1px solid rgba(255, 255, 255, 0.1); + color: #ffffff; + border-radius: 999px; + padding: 6px 12px; + text-align: center; + background-color: black; + border-color: rgba(255, 255, 255, 0.4); } + +/* General Typography */ +.unlock-dialog-clock .unlock-dialog-clock-date, .app-folder-dialog .folder-name-container .folder-name-label, .app-folder-dialog .folder-name-container .folder-name-entry, .search-statustext { + font-weight: 800; + font-size: 1.818em; } + +.conflicting-session-dialog-content .conflicting-session-dialog-title, .message-dialog-content .message-dialog-title, .message-notification-group .message-group-header .message-group-title, .datemenu-today-button .date-label { + font-weight: 800; + font-size: 1.364em; } + +.login-dialog .user-widget.horizontal .user-widget-label, +.unlock-dialog .user-widget.horizontal .user-widget-label, .quick-toggle-menu .header .title, .message-list .message-list-placeholder { + font-weight: 700; + font-size: 1.364em; } + +.parental-controls-shield .parental-controls-shield-button, .parental-controls-shield .parental-controls-shield-title, .login-dialog-auth-list-label, #LookingGlassDebugFlags .lg-debug-flags-header, #LookingGlassExtensions .lg-extensions-none, .word-suggestions, .bt-menu-placeholder.popup-menu-item, .restart-message, .polkit-dialog-user-layout .polkit-dialog-user-label, +.polkit-dialog-user-layout .polkit-dialog-user-root-label, .message-dialog-content .message-dialog-title.lightweight { + font-weight: 700; + font-size: 1.182em; } + +.login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label { + font-weight: 700; + font-size: 1em; } + +.quick-toggle-menu .header .subtitle, .app-menu .popup-inactive-menu-item:first-child > StLabel { + font-weight: 700; + font-size: 0.818em; } + +.lg-completions-text, .caps-lock-warning-label, .background-app-item .subtitle, .quick-toggle .quick-toggle-subtitle, .screenshot-ui-type-button .icon-label-button-container, .prompt-dialog .prompt-dialog-error-label, +.prompt-dialog .prompt-dialog-info-label, +.prompt-dialog .prompt-dialog-null-label, .run-dialog .run-dialog-description, .dialog-list .dialog-list-box .dialog-list-item .dialog-list-item-description, .message .message-header .message-header-content .event-time, .world-clocks-button .world-clocks-grid .world-clocks-timezone, .events-button .events-box .events-list .event-box .event-time { + font-weight: 400; + font-size: 0.818em; } + +.weather-button .weather-box .weather-grid .weather-forecast-time, .calendar .calendar-week-number, .calendar .calendar-day-heading, .calendar .calendar-day { + font-weight: 400; + font-size: 0.818em; } + +#LookingGlassDebugFlags .lg-debug-flag-button StLabel, #LookingGlassEvaluator .evaluator-results, .lg-dialog .actor-link { + font-family: monospace; } + +.unlock-dialog-clock .unlock-dialog-clock-time, #panel, .weather-button .weather-box .weather-grid .weather-forecast-temp, .world-clocks-button .world-clocks-grid .world-clocks-timezone, .world-clocks-button .world-clocks-grid .world-clocks-time, .events-button .events-box .events-list .event-box .event-time, .calendar .calendar-day-heading, .calendar .calendar-day { + font-feature-settings: "tnum"; } + +/* OSD Elements */ +#LookingGlassDialog, .screenshot-ui-panel, .workspace-switcher, .switcher-list, .resize-popup, .osd-window { + color: #ffffff; + background-color: #000000; + border: 1px solid rgba(255, 255, 255, 0.2); + border-radius: 999px; + padding: 12px; + box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.4); + border: 2px solid rgba(255, 255, 255, 0.4); + box-shadow: none; } + +.lg-dialog StEntry { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: #171717; + color: rgba(255, 255, 255, 0.7); } + .lg-dialog StEntry:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: #212121; + color: #ffffff; } + .lg-dialog StEntry:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), #171717, 5%); + color: #ffffff; } + .lg-dialog StEntry:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: #0f0f0f; + color: rgba(255, 255, 255, 0.5); } + .lg-dialog StEntry StLabel.hint-text { + color: rgba(255, 255, 255, 0.7); } + +#LookingGlassDebugFlags .lg-debug-flag-button, #LookingGlassPropertyInspector .lg-obj-inspector-close-button, +#LookingGlassPropertyInspector .lg-obj-inspector-button, #LookingGlassDialog > #Toolbar .lg-toolbar-button { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #000000, 9%), #ffffff, 87%); } + #LookingGlassDebugFlags .lg-debug-flag-button:focus, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:focus, + #LookingGlassPropertyInspector .lg-obj-inspector-button:focus, #LookingGlassDialog > #Toolbar .lg-toolbar-button:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(#ffffff, #000000, 9%), #ffffff, 87%), 5%); } + #LookingGlassDebugFlags .lg-debug-flag-button:focus:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:focus:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:focus:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 4%), #ffffff, 87%), 5%); } + #LookingGlassDebugFlags .lg-debug-flag-button:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 4%), #ffffff, 87%); } + #LookingGlassDebugFlags .lg-debug-flag-button:active, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:active, + #LookingGlassPropertyInspector .lg-obj-inspector-button:active, #LookingGlassDialog > #Toolbar .lg-toolbar-button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%); } + #LookingGlassDebugFlags .lg-debug-flag-button:active:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:active:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:active:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), 4%); } + #LookingGlassDebugFlags .lg-debug-flag-button:active:focus, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:active:focus, + #LookingGlassPropertyInspector .lg-obj-inspector-button:active:focus, #LookingGlassDialog > #Toolbar .lg-toolbar-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%), 5%); } + #LookingGlassDebugFlags .lg-debug-flag-button:checked, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:checked, + #LookingGlassPropertyInspector .lg-obj-inspector-button:checked, #LookingGlassDialog > #Toolbar .lg-toolbar-button:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 8%), #ffffff, 87%); } + #LookingGlassDebugFlags .lg-debug-flag-button:checked:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:checked:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:checked:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #000000, 9%), 8%), 4%); } + #LookingGlassDebugFlags .lg-debug-flag-button:checked:active, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:checked:active, + #LookingGlassPropertyInspector .lg-obj-inspector-button:checked:active, #LookingGlassDialog > #Toolbar .lg-toolbar-button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #000000, 9%), 8%), 9%); } + #LookingGlassDebugFlags .lg-debug-flag-button:insensitive, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:insensitive, + #LookingGlassPropertyInspector .lg-obj-inspector-button:insensitive, #LookingGlassDialog > #Toolbar .lg-toolbar-button:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(st-mix(#ffffff, #000000, 9%), 3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + +#LookingGlassDialog .notebook-tab, .screenshot-ui-show-pointer-button, .screenshot-ui-type-button { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #000000; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + #LookingGlassDialog .notebook-tab:focus, .screenshot-ui-show-pointer-button:focus, .screenshot-ui-type-button:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(0, 0, 0, 0.25), 5%); } + #LookingGlassDialog .notebook-tab:focus:hover, .screenshot-ui-show-pointer-button:focus:hover, .screenshot-ui-type-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#000000, 7%), #ffffff, 87%), 5%); } + #LookingGlassDialog .notebook-tab:hover, .screenshot-ui-show-pointer-button:hover, .screenshot-ui-type-button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 7%), #ffffff, 87%); } + #LookingGlassDialog .notebook-tab:active, .screenshot-ui-show-pointer-button:active, .screenshot-ui-type-button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 9%), #ffffff, 87%); } + #LookingGlassDialog .notebook-tab:active:hover, .screenshot-ui-show-pointer-button:active:hover, .screenshot-ui-type-button:active:hover { + background-color: st-lighten(st-lighten(#000000, 9%), 7%); } + #LookingGlassDialog .notebook-tab:active:focus, .screenshot-ui-show-pointer-button:active:focus, .screenshot-ui-type-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#000000, 9%), #ffffff, 87%), 5%); } + #LookingGlassDialog .notebook-tab:checked, .screenshot-ui-show-pointer-button:checked, .screenshot-ui-type-button:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 8%), #ffffff, 87%); } + #LookingGlassDialog .notebook-tab:checked:hover, .screenshot-ui-show-pointer-button:checked:hover, .screenshot-ui-type-button:checked:hover { + background-color: st-lighten(st-lighten(#000000, 8%), 7%); } + #LookingGlassDialog .notebook-tab:checked:active, .screenshot-ui-show-pointer-button:checked:active, .screenshot-ui-type-button:checked:active { + background-color: st-lighten(st-lighten(#000000, 8%), 9%); } + #LookingGlassDialog .notebook-tab:insensitive, .screenshot-ui-show-pointer-button:insensitive, .screenshot-ui-type-button:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: #000000; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + +/* System Elements */ +.login-dialog .login-dialog-prompt-entry, .app-folder-dialog .folder-name-container .folder-name-entry, .search-entry { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: #232323; + color: rgba(255, 255, 255, 0.7); } + .login-dialog .login-dialog-prompt-entry:hover, .app-folder-dialog .folder-name-container .folder-name-entry:hover, .search-entry:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: #2d2d2d; + color: #ffffff; } + .login-dialog .login-dialog-prompt-entry:focus, .app-folder-dialog .folder-name-container .folder-name-entry:focus, .search-entry:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), #232323, 5%); + color: #ffffff; } + .login-dialog .login-dialog-prompt-entry:insensitive, .app-folder-dialog .folder-name-container .folder-name-entry:insensitive, .search-entry:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: #1b1b1b; + color: rgba(255, 255, 255, 0.5); } + .login-dialog .login-dialog-prompt-entry StLabel.hint-text, .app-folder-dialog .folder-name-container .folder-name-entry StLabel.hint-text, .search-entry StLabel.hint-text { + color: rgba(255, 255, 255, 0.7); } + +.login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #0d0d0d, 9%), #ffffff, 87%); } + .login-dialog-button.a11y-button:insensitive, .login-dialog-button.cancel-button:insensitive, .login-dialog-button.switch-user-button:insensitive, .login-dialog-button.login-dialog-session-list-button:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(st-mix(#ffffff, #0d0d0d, 9%), 3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .login-dialog-button.a11y-button:focus, .login-dialog-button.cancel-button:focus, .login-dialog-button.switch-user-button:focus, .login-dialog-button.login-dialog-session-list-button:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(#ffffff, #0d0d0d, 9%), #ffffff, 87%), 5%); } + .login-dialog-button.a11y-button:focus:hover, .login-dialog-button.cancel-button:focus:hover, .login-dialog-button.switch-user-button:focus:hover, .login-dialog-button.login-dialog-session-list-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #0d0d0d, 9%), 4%), #ffffff, 87%), 5%); } + .login-dialog-button.a11y-button:hover, .login-dialog-button.cancel-button:hover, .login-dialog-button.switch-user-button:hover, .login-dialog-button.login-dialog-session-list-button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #0d0d0d, 9%), 4%), #ffffff, 87%); } + .login-dialog-button.a11y-button:active, .login-dialog-button.cancel-button:active, .login-dialog-button.switch-user-button:active, .login-dialog-button.login-dialog-session-list-button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #0d0d0d, 9%), 9%), #ffffff, 87%); } + .login-dialog-button.a11y-button:active:hover, .login-dialog-button.cancel-button:active:hover, .login-dialog-button.switch-user-button:active:hover, .login-dialog-button.login-dialog-session-list-button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #0d0d0d, 9%), 9%), 4%); } + .login-dialog-button.a11y-button:active:focus, .login-dialog-button.cancel-button:active:focus, .login-dialog-button.switch-user-button:active:focus, .login-dialog-button.login-dialog-session-list-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #0d0d0d, 9%), 9%), #ffffff, 87%), 5%); } + .login-dialog-button.a11y-button:checked, .login-dialog-button.cancel-button:checked, .login-dialog-button.switch-user-button:checked, .login-dialog-button.login-dialog-session-list-button:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #0d0d0d, 9%), 8%), #ffffff, 87%); } + .login-dialog-button.a11y-button:checked:hover, .login-dialog-button.cancel-button:checked:hover, .login-dialog-button.switch-user-button:checked:hover, .login-dialog-button.login-dialog-session-list-button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #0d0d0d, 9%), 8%), 4%); } + .login-dialog-button.a11y-button:checked:active, .login-dialog-button.cancel-button:checked:active, .login-dialog-button.switch-user-button:checked:active, .login-dialog-button.login-dialog-session-list-button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #0d0d0d, 9%), 8%), 9%); } + +/* Lockscreen Elements */ +.unlock-dialog-notifications-container .message StButton, +.unlock-dialog-notifications-container .unlock-dialog-notification-source StButton, .parental-controls-shield .parental-controls-shield-button, .unlock-dialog .button, +.unlock-dialog .icon-button, +.unlock-dialog .calendar .calendar-month-header .pager-button, +.calendar .calendar-month-header .unlock-dialog .pager-button, +.unlock-dialog .message-notification-group .message-collapse-button, +.message-notification-group .unlock-dialog .message-collapse-button, +.unlock-dialog .message .message-header .message-expand-button, +.message .message-header .unlock-dialog .message-expand-button, +.unlock-dialog .message .message-header .message-close-button, +.message .message-header .unlock-dialog .message-close-button, +.unlock-dialog .screenshot-ui-show-pointer-button, +.unlock-dialog .login-dialog-button.a11y-button, +.unlock-dialog .login-dialog-button.cancel-button, +.unlock-dialog .login-dialog-button.switch-user-button, +.unlock-dialog .login-dialog-button.login-dialog-session-list-button, .unlock-dialog .login-dialog-auth-list-item { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(rgba(255, 255, 255, 0.1), #ffffff, 87%); } + .unlock-dialog-notifications-container .message StButton:focus, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:focus, .parental-controls-shield .parental-controls-shield-button:focus, .unlock-dialog .button:focus, + .unlock-dialog .icon-button:focus, + .unlock-dialog .calendar .calendar-month-header .pager-button:focus, + .calendar .calendar-month-header .unlock-dialog .pager-button:focus, + .unlock-dialog .message-notification-group .message-collapse-button:focus, + .message-notification-group .unlock-dialog .message-collapse-button:focus, + .unlock-dialog .message .message-header .message-expand-button:focus, + .message .message-header .unlock-dialog .message-expand-button:focus, + .unlock-dialog .message .message-header .message-close-button:focus, + .message .message-header .unlock-dialog .message-close-button:focus, + .unlock-dialog .screenshot-ui-show-pointer-button:focus, + .unlock-dialog .login-dialog-button.a11y-button:focus, + .unlock-dialog .login-dialog-button.cancel-button:focus, + .unlock-dialog .login-dialog-button.switch-user-button:focus, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:focus, .unlock-dialog .login-dialog-auth-list-item:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(rgba(255, 255, 255, 0.1), #ffffff, 87%), 5%); } + .unlock-dialog-notifications-container .message StButton:focus:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:focus:hover, .parental-controls-shield .parental-controls-shield-button:focus:hover, .unlock-dialog .button:focus:hover, + .unlock-dialog .icon-button:focus:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:focus:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:focus:hover, + .unlock-dialog .message-notification-group .message-collapse-button:focus:hover, + .message-notification-group .unlock-dialog .message-collapse-button:focus:hover, + .unlock-dialog .message .message-header .message-expand-button:focus:hover, + .message .message-header .unlock-dialog .message-expand-button:focus:hover, + .unlock-dialog .message .message-header .message-close-button:focus:hover, + .message .message-header .unlock-dialog .message-close-button:focus:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:focus:hover, + .unlock-dialog .login-dialog-button.a11y-button:focus:hover, + .unlock-dialog .login-dialog-button.cancel-button:focus:hover, + .unlock-dialog .login-dialog-button.switch-user-button:focus:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:focus:hover, .unlock-dialog .login-dialog-auth-list-item:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(rgba(255, 255, 255, 0.13), #ffffff, 87%), 5%); } + .unlock-dialog-notifications-container .message StButton:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:hover, .parental-controls-shield .parental-controls-shield-button:hover, .unlock-dialog .button:hover, + .unlock-dialog .icon-button:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:hover, + .unlock-dialog .message-notification-group .message-collapse-button:hover, + .message-notification-group .unlock-dialog .message-collapse-button:hover, + .unlock-dialog .message .message-header .message-expand-button:hover, + .message .message-header .unlock-dialog .message-expand-button:hover, + .unlock-dialog .message .message-header .message-close-button:hover, + .message .message-header .unlock-dialog .message-close-button:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:hover, + .unlock-dialog .login-dialog-button.a11y-button:hover, + .unlock-dialog .login-dialog-button.cancel-button:hover, + .unlock-dialog .login-dialog-button.switch-user-button:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:hover, .unlock-dialog .login-dialog-auth-list-item:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(rgba(255, 255, 255, 0.13), #ffffff, 87%); } + .unlock-dialog-notifications-container .message StButton:active, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:active, .parental-controls-shield .parental-controls-shield-button:active, .unlock-dialog .button:active, + .unlock-dialog .icon-button:active, + .unlock-dialog .calendar .calendar-month-header .pager-button:active, + .calendar .calendar-month-header .unlock-dialog .pager-button:active, + .unlock-dialog .message-notification-group .message-collapse-button:active, + .message-notification-group .unlock-dialog .message-collapse-button:active, + .unlock-dialog .message .message-header .message-expand-button:active, + .message .message-header .unlock-dialog .message-expand-button:active, + .unlock-dialog .message .message-header .message-close-button:active, + .message .message-header .unlock-dialog .message-close-button:active, + .unlock-dialog .screenshot-ui-show-pointer-button:active, + .unlock-dialog .login-dialog-button.a11y-button:active, + .unlock-dialog .login-dialog-button.cancel-button:active, + .unlock-dialog .login-dialog-button.switch-user-button:active, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:active, .unlock-dialog .login-dialog-auth-list-item:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(rgba(255, 255, 255, 0.16), #ffffff, 87%); } + .unlock-dialog-notifications-container .message StButton:active:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:active:hover, .parental-controls-shield .parental-controls-shield-button:active:hover, .unlock-dialog .button:active:hover, + .unlock-dialog .icon-button:active:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:active:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:active:hover, + .unlock-dialog .message-notification-group .message-collapse-button:active:hover, + .message-notification-group .unlock-dialog .message-collapse-button:active:hover, + .unlock-dialog .message .message-header .message-expand-button:active:hover, + .message .message-header .unlock-dialog .message-expand-button:active:hover, + .unlock-dialog .message .message-header .message-close-button:active:hover, + .message .message-header .unlock-dialog .message-close-button:active:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:active:hover, + .unlock-dialog .login-dialog-button.a11y-button:active:hover, + .unlock-dialog .login-dialog-button.cancel-button:active:hover, + .unlock-dialog .login-dialog-button.switch-user-button:active:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:active:hover, .unlock-dialog .login-dialog-auth-list-item:active:hover { + background-color: rgba(255, 255, 255, 0.19); } + .unlock-dialog-notifications-container .message StButton:active:focus, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:active:focus, .parental-controls-shield .parental-controls-shield-button:active:focus, .unlock-dialog .button:active:focus, + .unlock-dialog .icon-button:active:focus, + .unlock-dialog .calendar .calendar-month-header .pager-button:active:focus, + .calendar .calendar-month-header .unlock-dialog .pager-button:active:focus, + .unlock-dialog .message-notification-group .message-collapse-button:active:focus, + .message-notification-group .unlock-dialog .message-collapse-button:active:focus, + .unlock-dialog .message .message-header .message-expand-button:active:focus, + .message .message-header .unlock-dialog .message-expand-button:active:focus, + .unlock-dialog .message .message-header .message-close-button:active:focus, + .message .message-header .unlock-dialog .message-close-button:active:focus, + .unlock-dialog .screenshot-ui-show-pointer-button:active:focus, + .unlock-dialog .login-dialog-button.a11y-button:active:focus, + .unlock-dialog .login-dialog-button.cancel-button:active:focus, + .unlock-dialog .login-dialog-button.switch-user-button:active:focus, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:active:focus, .unlock-dialog .login-dialog-auth-list-item:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(rgba(255, 255, 255, 0.16), #ffffff, 87%), 5%); } + .unlock-dialog-notifications-container .message StButton:checked, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:checked, .parental-controls-shield .parental-controls-shield-button:checked, .unlock-dialog .button:checked, + .unlock-dialog .icon-button:checked, + .unlock-dialog .calendar .calendar-month-header .pager-button:checked, + .calendar .calendar-month-header .unlock-dialog .pager-button:checked, + .unlock-dialog .message-notification-group .message-collapse-button:checked, + .message-notification-group .unlock-dialog .message-collapse-button:checked, + .unlock-dialog .message .message-header .message-expand-button:checked, + .message .message-header .unlock-dialog .message-expand-button:checked, + .unlock-dialog .message .message-header .message-close-button:checked, + .message .message-header .unlock-dialog .message-close-button:checked, + .unlock-dialog .screenshot-ui-show-pointer-button:checked, + .unlock-dialog .login-dialog-button.a11y-button:checked, + .unlock-dialog .login-dialog-button.cancel-button:checked, + .unlock-dialog .login-dialog-button.switch-user-button:checked, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:checked, .unlock-dialog .login-dialog-auth-list-item:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), #ffffff, 87%); } + .unlock-dialog-notifications-container .message StButton:checked:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:checked:hover, .parental-controls-shield .parental-controls-shield-button:checked:hover, .unlock-dialog .button:checked:hover, + .unlock-dialog .icon-button:checked:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:checked:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:checked:hover, + .unlock-dialog .message-notification-group .message-collapse-button:checked:hover, + .message-notification-group .unlock-dialog .message-collapse-button:checked:hover, + .unlock-dialog .message .message-header .message-expand-button:checked:hover, + .message .message-header .unlock-dialog .message-expand-button:checked:hover, + .unlock-dialog .message .message-header .message-close-button:checked:hover, + .message .message-header .unlock-dialog .message-close-button:checked:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:checked:hover, + .unlock-dialog .login-dialog-button.a11y-button:checked:hover, + .unlock-dialog .login-dialog-button.cancel-button:checked:hover, + .unlock-dialog .login-dialog-button.switch-user-button:checked:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:checked:hover, .unlock-dialog .login-dialog-auth-list-item:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), 4%); } + .unlock-dialog-notifications-container .message StButton:checked:active, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:checked:active, .parental-controls-shield .parental-controls-shield-button:checked:active, .unlock-dialog .button:checked:active, + .unlock-dialog .icon-button:checked:active, + .unlock-dialog .calendar .calendar-month-header .pager-button:checked:active, + .calendar .calendar-month-header .unlock-dialog .pager-button:checked:active, + .unlock-dialog .message-notification-group .message-collapse-button:checked:active, + .message-notification-group .unlock-dialog .message-collapse-button:checked:active, + .unlock-dialog .message .message-header .message-expand-button:checked:active, + .message .message-header .unlock-dialog .message-expand-button:checked:active, + .unlock-dialog .message .message-header .message-close-button:checked:active, + .message .message-header .unlock-dialog .message-close-button:checked:active, + .unlock-dialog .screenshot-ui-show-pointer-button:checked:active, + .unlock-dialog .login-dialog-button.a11y-button:checked:active, + .unlock-dialog .login-dialog-button.cancel-button:checked:active, + .unlock-dialog .login-dialog-button.switch-user-button:checked:active, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:checked:active, .unlock-dialog .login-dialog-auth-list-item:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 8%), 9%); } + .unlock-dialog-notifications-container .message StButton:insensitive, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:insensitive, .parental-controls-shield .parental-controls-shield-button:insensitive, .unlock-dialog .button:insensitive, + .unlock-dialog .icon-button:insensitive, + .unlock-dialog .calendar .calendar-month-header .pager-button:insensitive, + .calendar .calendar-month-header .unlock-dialog .pager-button:insensitive, + .unlock-dialog .message-notification-group .message-collapse-button:insensitive, + .message-notification-group .unlock-dialog .message-collapse-button:insensitive, + .unlock-dialog .message .message-header .message-expand-button:insensitive, + .message .message-header .unlock-dialog .message-expand-button:insensitive, + .unlock-dialog .message .message-header .message-close-button:insensitive, + .message .message-header .unlock-dialog .message-close-button:insensitive, + .unlock-dialog .screenshot-ui-show-pointer-button:insensitive, + .unlock-dialog .login-dialog-button.a11y-button:insensitive, + .unlock-dialog .login-dialog-button.cancel-button:insensitive, + .unlock-dialog .login-dialog-button.switch-user-button:insensitive, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:insensitive, .unlock-dialog .login-dialog-auth-list-item:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(st-mix(#ffffff, #1a1a1a, 9%), 3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + +.unlock-dialog .login-dialog-prompt-entry { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: rgba(255, 255, 255, 0.1); + color: rgba(255, 255, 255, 0.7); } + .unlock-dialog .login-dialog-prompt-entry:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: rgba(255, 255, 255, 0.1); + color: #ffffff; } + .unlock-dialog .login-dialog-prompt-entry:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 2px st-transparentize(rgba(255, 255, 255, 0.7), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(255, 255, 255, 0.1), 5%); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(rgba(255, 255, 255, 0.7), 0.1) !important; + background-color: st-mix(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.1), 5%); } + .unlock-dialog .login-dialog-prompt-entry:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: rgba(247, 247, 247, 0.1); + color: rgba(255, 255, 255, 0.5); } + .unlock-dialog .login-dialog-prompt-entry StLabel.hint-text { + color: rgba(255, 255, 255, 0.7); } + +/* WIDGETS */ +.shell-link { + color: st-lighten(-st-accent-color, 20%); } + .shell-link:hover { + color: st-lighten(st-lighten(-st-accent-color, 20%), 10%); } + +.lowres-icon { + icon-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } + +.icon-dropshadow { + icon-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); + icon-shadow: none; } + +/* Entries */ +StEntry StIcon.capslock-warning { + icon-size: 1.091em; + warning-color: #cd9309; + padding: 0 4px; } + +StEntry StIcon.peek-password { + icon-size: 1.091em; + padding: 0 4px; } + +StEntry StLabel.hint-text { + margin-left: 2px; } + +/* Buttons */ +.button { + min-height: 1.5em; } + +.icon-button, .login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button, .screenshot-ui-show-pointer-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button, .message-notification-group .message-collapse-button, .calendar .calendar-month-header .pager-button { + border-radius: 999px; + padding: 0.818em; + min-height: 1.091em; } + .icon-button StIcon, .login-dialog-button.a11y-button StIcon, .login-dialog-button.cancel-button StIcon, .login-dialog-button.switch-user-button StIcon, .login-dialog-button.login-dialog-session-list-button StIcon, .screenshot-ui-show-pointer-button StIcon, .message .message-header .message-expand-button StIcon, + .message .message-header .message-close-button StIcon, .message-notification-group .message-collapse-button StIcon, .calendar .calendar-month-header .pager-button StIcon { + icon-size: 1.091em; + -st-icon-style: symbolic; } + +/* Check Boxes */ +.check-box StBoxLayout { + spacing: .8em; } + +.check-box StBin { + border-radius: 7px; + padding: 2px; } + +.check-box:focus StBin { + background-color: rgba(0, 0, 0, 0.01); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.65); } + +.check-box StIcon { + icon-size: 14px; + padding: 1px; + color: transparent; + border-radius: 6px; + border: 2px solid rgba(255, 255, 255, 0.15); } + +.check-box:hover StIcon { + border-color: rgba(255, 255, 255, 0.2); } + +.check-box:active StIcon { + border-color: rgba(255, 255, 255, 0.3); } + +.check-box:checked StIcon { + background-color: -st-accent-color; + color: -st-accent-fg-color; + border-color: transparent; } + +.check-box:checked:hover StIcon { + background-color: st-lighten(-st-accent-color, 5%); + color: st-lighten(-st-accent-fg-color, 5%); } + +.check-box:checked:active StIcon { + background-color: st-darken(-st-accent-color, 7%); + color: st-darken(-st-accent-fg-color, 7%); } + +/* Switches */ +.toggle-switch { + width: 46px; + border-radius: 999px; + transition-duration: 100ms; + color: #ffffff; + background: rgba(255, 255, 255, 0.3); } + .toggle-switch:hover { + background: rgba(255, 255, 255, 0.4); } + .toggle-switch StIcon { + icon-size: 16px; } + .toggle-switch .handle { + margin: 3px; + width: 20px; + height: 20px; + border-radius: 999px; + background: #d1d1d1; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + transition-duration: 100ms; } + .toggle-switch:checked { + background: -st-accent-color; + color: -st-accent-fg-color; } + .toggle-switch:checked:hover { + background-color: st-lighten(-st-accent-color, 5%); + color: st-lighten(-st-accent-fg-color, 5%); } + .toggle-switch:checked .handle { + background: white; } + +/* Slider */ +.slider { + color: #e8e8e8; + -barlevel-height: 4px; + -barlevel-background-color: rgba(255, 255, 255, 0.1); + -barlevel-active-background-color: -st-accent-color; + -barlevel-overdrive-color: #c01c28; + -barlevel-overdrive-separator-width: 1px; + -slider-handle-radius: 0.5455em; + -barlevel-background-color: rgba(255, 255, 255, 0.4); } + .slider:hover { + color: #ffffff; } + +/* Scrollbars */ +StScrollView.vfade { + -st-vfade-offset: 68px; } + +StScrollView.hfade { + -st-hfade-offset: 68px; } + +StScrollBar { + padding: 0; } + StScrollView StScrollBar { + min-width: 8px; + min-height: 8px; } + StScrollBar StBin#trough { + border-radius: 0; + background-color: transparent; } + StScrollBar > .vhandle, StScrollBar > .hhandle { + border-radius: 8px; + background-color: #5e5e5e; + border: 3px solid transparent; + transition: 500ms all ease; } + StScrollBar > .vhandle:hover, StScrollBar > .hhandle:hover { + background-color: #8c8c8c; } + StScrollBar > .vhandle:active, StScrollBar > .hhandle:active { + background-color: #757575; } + +/* Popovers/Menus */ +.popup-menu-boxpointer, .candidate-popup-boxpointer { + -arrow-rise: 6px; } + +.popup-menu { + min-width: 15em; + color: #ffffff; } + .popup-menu.panel-menu { + margin-bottom: 1.75em; } + +.popup-menu-content, .candidate-popup-content { + padding: 6px; + background-color: #1a1a1a; + border-radius: 20px; + border: 1px solid rgba(255, 255, 255, 0.5); + box-shadow: 0 2px 4px 0 transparent; } + +.popup-menu-item { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: transparent; + border-color: transparent; + box-shadow: none; + border-radius: 12px; } + .popup-menu-item:insensitive { + background-color: transparent !important; } + .popup-menu-item:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#262626, 9%), #ffffff, 87%); } + .popup-menu-item:active:hover { + background-color: st-lighten(st-lighten(#262626, 9%), 7%); } + .popup-menu-item:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#262626, 9%), #ffffff, 87%), 5%); } + .popup-menu-item:hover, .popup-menu-item:selected, .popup-menu-item:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#262626, 7%), #ffffff, 87%); } + .popup-menu-item:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: #262626; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .popup-menu-item:checked { + border-radius: 12px 12px 0 0 !important; + border: 1px solid rgba(255, 255, 255, 0.4); + border-bottom-width: 0; } + .popup-menu-item .toggle-switch:ltr { + margin-left: 4px; } + .popup-menu-item .toggle-switch:rtl { + margin-right: 4px; } + +.popup-ornamented-menu-item:ltr { + padding-left: 6px; } + +.popup-ornamented-menu-item:rtl { + padding-right: 6px; } + +.popup-inactive-menu-item { + color: #ffffff; } + .popup-inactive-menu-item:insensitive { + color: #ffffff; } + +.popup-menu-arrow, +.popup-menu-icon { + icon-size: 1.091em; } + +.popup-sub-menu { + border-radius: 0 0 13px 13px; + margin-bottom: 6px; + border: 1px solid transparent; + background-color: #3b3b3b; + border-color: rgba(255, 255, 255, 0.4); } + .popup-sub-menu .popup-menu-item { + border-radius: 0; + border-top-width: 0; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .popup-sub-menu .popup-menu-item:insensitive { + background-color: transparent !important; } + .popup-sub-menu .popup-menu-item:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#3b3b3b, 9%), #ffffff, 87%); } + .popup-sub-menu .popup-menu-item:active:hover { + background-color: st-lighten(st-lighten(#3b3b3b, 9%), 7%); } + .popup-sub-menu .popup-menu-item:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#3b3b3b, 9%), #ffffff, 87%), 5%); } + .popup-sub-menu .popup-menu-item:hover, .popup-sub-menu .popup-menu-item:selected, .popup-sub-menu .popup-menu-item:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#3b3b3b, 7%), #ffffff, 87%); } + .popup-sub-menu .popup-menu-item:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: #3b3b3b; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .popup-sub-menu .popup-menu-item:last-child { + border-radius: 0 0 12px 12px; + border-bottom-width: 0; } + .popup-sub-menu .popup-menu-section .popup-menu-item:last-child:hover, .popup-sub-menu .popup-menu-section .popup-menu-item:last-child:focus { + border-radius: 0; } + .popup-sub-menu .popup-menu-section:last-child .popup-menu-item:last-child { + border-radius: 0 0 12px 12px; } + +.popup-menu-ornament { + icon-size: 1.091em !important; + width: 1.091em; } + +.popup-separator-menu-item { + border: none !important; } + .popup-separator-menu-item .popup-separator-menu-item-separator { + height: 1px; + background-color: rgba(255, 255, 255, 0.5); } + .popup-sub-menu .popup-separator-menu-item { + background-color: transparent; } + .popup-sub-menu .popup-separator-menu-item:ltr { + margin-right: 2.5em; } + .popup-sub-menu .popup-separator-menu-item:rtl { + margin-left: 2.5em; } + .popup-sub-menu .popup-separator-menu-item .popup-separator-menu-item-separator { + background-color: rgba(255, 255, 255, 0.5); } + +.background-menu { + -boxpointer-gap: 0px; + -arrow-rise: 0px; } + +.app-menu { + max-width: 27.25em; } + .app-menu .popup-inactive-menu-item:first-child > StLabel:ltr { + margin-right: 8px; } + .app-menu .popup-inactive-menu-item:first-child > StLabel:rtl { + margin-left: 8px; } + +/* Date/Time Menu */ +#calendarArea { + padding: 4px; } + +.datemenu-popover { + border-radius: 30px; } + +.datemenu-calendar-column { + spacing: 6px; } + .datemenu-calendar-column:ltr { + margin-left: 6px; } + .datemenu-calendar-column:rtl { + margin-right: 6px; } + .datemenu-calendar-column .datemenu-displays-box { + spacing: 6px; } + +.datemenu-today-button { + padding: 9px; } + .datemenu-today-button .day-label { + font-weight: bold; } + +.calendar { + margin-top: 0; + padding: 0; } + .calendar .calendar-month-header .calendar-change-month-back StIcon, + .calendar .calendar-month-header .calendar-change-month-forward StIcon { + icon-size: 1.091em; } + .calendar .calendar-month-header .calendar-month-label { + color: #ffffff !important; + padding: 8px 0; + width: 10em; + border-radius: 999px; + text-align: center; } + .calendar .calendar-month-header .pager-button { + height: 2.6em; + width: 2.6em; + padding: 0; } + .calendar .calendar-day { + border-radius: 999px; + height: 3em; + width: 3em; + margin: 2px; + padding: 0; + font-weight: bold; + text-align: center; } + .calendar .calendar-day.calendar-weekend { + color: #ffffff; + font-style: italic; } + .calendar .calendar-day.calendar-other-month { + color: rgba(255, 255, 255, 0.5); + font-weight: normal; + color: #ffffff; + font-style: italic; } + .calendar .calendar-day.calendar-other-month.calendar-weekend { + color: rgba(255, 255, 255, 0.5); + color: #ffffff; } + .calendar .calendar-day.calendar-today { + color: -st-accent-fg-color !important; } + .calendar .calendar-day.calendar-today.calendar-day-with-events { + background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg") !important; } + .calendar .calendar-day.calendar-day-with-events { + background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg"); + background-size: contain; } + .calendar .calendar-day-heading { + font-weight: bold; + text-align: center; + margin: 4px; + padding: 3px 6px; + border-radius: 8px; } + .calendar .calendar-week-number { + font-weight: bold; + font-feature-settings: "tnum"; + text-align: center; + margin: 6px; + padding: 0 6px; + border-radius: 4px; + background-color: rgba(255, 255, 255, 0.2); + color: #ffffff; } + +.events-button .events-box .events-title { + color: #ffffff; + padding-bottom: 6px; } + +.events-button .events-box .events-list { + spacing: 6px; } + .events-button .events-box .events-list .event-box { + spacing: 6px; + border-radius: 8px; } + .events-button .events-box .events-list .event-box .event-time { + color: #ffffff; } + .events-button .events-box .events-list .event-placeholder { + color: #ffffff; + font-style: italic; } + +.world-clocks-button .world-clocks-header { + color: #ffffff; } + .world-clocks-button .world-clocks-header.no-world-clocks { + color: #ffffff; } + +.world-clocks-button .world-clocks-grid { + spacing-rows: 6px; + spacing-columns: 12px; } + .world-clocks-button .world-clocks-grid .world-clocks-time { + font-weight: bold; } + .world-clocks-button .world-clocks-grid .world-clocks-time:ltr { + text-align: right; } + .world-clocks-button .world-clocks-grid .world-clocks-time:rtl { + text-align: left; } + .world-clocks-button .world-clocks-grid .world-clocks-timezone { + color: #ffffff; } + +.weather-button .weather-box { + spacing: 6px; } + .weather-button .weather-box .weather-header-box { + spacing: 6px; } + .weather-button .weather-box .weather-header-box .weather-header { + color: #ffffff; } + .weather-button .weather-box .weather-header-box .weather-header.no-location { + color: #ffffff; } + .weather-button .weather-box .weather-header-box .weather-header.location { + font-weight: normal; } + .weather-button .weather-box .weather-grid { + spacing-rows: 6px; + spacing-columns: 12px; } + .weather-button .weather-box .weather-grid .weather-forecast-time { + padding-top: 6px; + padding-bottom: 6px; } + .weather-button .weather-box .weather-grid .weather-forecast-icon { + icon-size: 2.182em; + margin-bottom: 4px; } + .weather-button .weather-box .weather-grid .weather-forecast-temp { + font-weight: bold; } + +/* Message List */ +.message-list { + width: 29em; + border: solid rgba(255, 255, 255, 0.5); } + .message-list:ltr { + margin-left: 0; + margin-right: 4px; + padding-right: 6px; + border-right-width: 1px; } + .message-list:rtl { + margin-right: 0; + margin-left: 4px; + padding-left: 6px; + border-left-width: 1px; } + .message-list .message-list-placeholder { + color: rgba(255, 255, 255, 0.45); + color: #ffffff; } + .message-list .message-list-placeholder > StIcon { + icon-size: 96px; + margin-bottom: 12px; + -st-icon-style: symbolic; } + +.message-view { + -st-vfade-offset: 68px; } + .message-view:ltr { + margin-right: 12px; } + .message-view:rtl { + margin-left: 12px; } + .message-view .message { + margin-bottom: 12px !important; + border-radius: 18px; } + +.message-list-controls { + padding: 12px; + padding-bottom: 9px; + spacing: 6px; } + .message-list-controls .message-list-clear-button { + border-radius: 999px; } + +.message-notification-group { + spacing: 12px; } + .message-notification-group .message-group-header { + padding: 6px; } + .message-notification-group .message-group-header .message-group-title { + margin: 0 4px; } + .message-notification-group .message-collapse-button { + color: #ffffff; + background-color: rgba(255, 255, 255, 0.2); + padding: 4px !important; + border: 4px transparent solid; } + .message-notification-group .message-collapse-button:hover { + background-color: rgba(255, 255, 255, 0.3); } + .message-notification-group .message-collapse-button:active { + background-color: rgba(255, 255, 255, 0.2); } + +.message { + padding: 6px; + margin: 0; + border-radius: 16px; + background-color: #262626; } + .message:second-in-stack { + background-color: #171717; + box-shadow: 0 1px 1px 0 transparent; } + .message:lower-in-stack { + background-color: #0f0f0f; + box-shadow: none; + border-color: transparent; } + .message .message-header { + spacing: 6px; + color: #ffffff; + padding: 0 6px; } + .message .message-header:ltr { + padding-right: 0; } + .message .message-header:rtl { + padding-left: 0; } + .message .message-header .message-source-icon { + icon-size: 1.091em; + -st-icon-style: symbolic; } + .message .message-header .message-header-content { + spacing: 6px; + min-height: 1.637em; + padding-bottom: 6px; } + .message .message-header .message-header-content .message-source-title { + font-weight: bold; } + .message .message-header .message-header-content .event-time { + color: #ffffff; + padding-bottom: 0.068em; } + .message .message-header .message-header-content .event-time:ltr { + text-align: right; } + .message .message-header .message-header-content .event-time:rtl { + text-align: left; } + .message .message-header .message-expand-button, + .message .message-header .message-close-button { + border-radius: 999px; + color: #ffffff; } + .message .message-header .message-expand-button { + padding: 6px; } + .message .message-header .message-close-button { + margin: 3px; + padding: 6px; } + .message .message-box { + padding: 6px; + margin-top: 0; + spacing: 6px; } + .message .message-box .message-icon { + icon-size: 48px; } + .message .message-box .message-icon:ltr { + margin-right: 6px; } + .message .message-box .message-icon:rtl { + margin-left: 6px; } + .message .message-box .message-icon.message-themed-icon { + border-radius: 999px; + background-color: rgba(255, 255, 255, 0.07); + icon-size: 1.091em; + min-width: 48px; + min-height: 48px; } + .message .message-box:first-child { + margin-top: 12px; } + .message .message-box .message-content { + spacing: 4px; } + .message .message-box .message-content .message-title { + font-weight: bold; } + .message .message-action-bin { + padding: 4px; + spacing: 6px; } + .message .message-action-bin * { + margin: 0 4px; } + .message .message-action-bin *:first-child:ltr { + margin-left: 0; } + .message .message-action-bin *:first-child:rtl { + margin-right: 0; } + .message .message-action-bin *:last-child:ltr { + margin-right: 0; } + .message .message-action-bin *:last-child:rtl { + margin-left: 0; } + +.url-highlighter { + link-color: st-lighten(-st-accent-color, 20%); } + +/* Media Controls */ +.message-media-control { + padding: 0 18px; + border-radius: 8px; + color: #ffffff; + border: 1px solid transparent; + border-color: rgba(255, 255, 255, 0.4); + margin: 12px 2px; } + .message-media-control:hover { + background-color: #595959; + color: #ffffff; } + .message-media-control:active { + background-color: #5e5e5e; + color: #ffffff; } + .message-media-control:insensitive { + color: white; + border-color: transparent; } + .message-media-control StIcon { + icon-size: 16px; } + +.media-message .message-icon { + border-radius: 8px !important; } + .media-message .message-icon.message-themed-icon { + icon-size: 32px !important; } + +.candidate-popup-content { + padding: 6px; + spacing: 6px; + border-radius: 12px; } + +.candidate-index { + padding: 0; + padding-right: 6px; + color: #ffffff; } + +.candidate-box { + padding: 6px 12px 6px 12px; + border-radius: 8px; } + .candidate-box:selected { + background-color: -st-accent-color; + color: -st-accent-fg-color; } + .candidate-box:hover { + background-color: #4d4d4d; + color: white; } + +.candidate-page-button-box { + height: 2em; } + .vertical .candidate-page-button-box { + padding-top: 12px; } + .horizontal .candidate-page-button-box { + padding-left: 12px; } + +.candidate-page-button { + padding: 6px; } + .candidate-page-button StIcon { + icon-size: 16px; } + +.candidate-page-button-previous { + border-radius: 8px 0px 0px 8px; + border-right-width: 0; + box-shadow: none; } + +.candidate-page-button-next { + border-radius: 0px 8px 8px 0px; + box-shadow: none; } + +/* Notifications & Message Tray */ +.notification-banner { + min-height: 64px; + width: 34em; + box-shadow: 0 2px 4px 2px transparent; + border-radius: 16px; + margin: 4px; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); } + +.notification-buttons-bin { + spacing: 0; } + +/* Modal Dialogs */ +.modal-dialog { + background-color: #1a1a1a; + border-radius: 18px; + padding: 24px; + spacing: 18px; + box-shadow: 0 12px 8px 12px rgba(0, 0, 0, 0.03); } + .modal-dialog .modal-dialog-content-box { + padding-top: 12px; + spacing: 18px; + max-width: 28em; } + .modal-dialog .modal-dialog-button-box { + padding-top: 6px; } + +.dialog-list { + spacing: 18px; } + .dialog-list .dialog-list-title { + text-align: center; } + .dialog-list .dialog-list-scrollview { + max-height: 200px; } + .dialog-list .dialog-list-box { + spacing: 1em; } + .dialog-list .dialog-list-box .dialog-list-item { + spacing: 1em; } + .dialog-list .dialog-list-box .dialog-list-item .dialog-list-item-title { + font-weight: bold; } + .dialog-list .dialog-list-box .dialog-list-item .dialog-list-item-description { + color: #f2f2f2; } + +/* End Session Dialog */ +.end-session-dialog { + width: 24em; } + .end-session-dialog .end-session-dialog-battery-warning, + .end-session-dialog .dialog-list-title { + color: #cd9309; + background-color: rgba(205, 147, 9, 0.1); + padding: 9px; + border-radius: 8px; + margin: 4px 0; } + +/* Message Dialog */ +.message-dialog-content { + spacing: 18px; } + .message-dialog-content .message-dialog-title { + text-align: center; } + .message-dialog-content .message-dialog-description { + text-align: center; } + +/* Run Dialog */ +.run-dialog { + width: 24em; + padding-bottom: 6px; } + .run-dialog .run-dialog-entry { + padding: 12px 9px; } + .run-dialog .run-dialog-description { + color: #cccccc; } + +/* Password or Authentication Dialog */ +.prompt-dialog { + width: 28em; } + .prompt-dialog .prompt-dialog-password-grid { + spacing-rows: 8px; + spacing-columns: 4px; } + .prompt-dialog .prompt-dialog-password-grid .prompt-dialog-password-entry { + width: auto; } + .prompt-dialog .prompt-dialog-password-grid .prompt-dialog-password-entry:ltr { + margin-left: 20px; } + .prompt-dialog .prompt-dialog-password-grid .prompt-dialog-password-entry:rtl { + margin-right: 20px; } + .prompt-dialog .prompt-dialog-password-layout { + spacing: 8px; } + .prompt-dialog .prompt-dialog-password-entry { + width: 20em; + padding: 12px 9px; } + .prompt-dialog .prompt-dialog-error-label, + .prompt-dialog .prompt-dialog-info-label, + .prompt-dialog .prompt-dialog-null-label { + text-align: center; + padding: 9px; + border-radius: 8px; + margin: 4px 0; } + .prompt-dialog .prompt-dialog-error-label { + color: #cd9309; + background-color: rgba(205, 147, 9, 0.1); } + .prompt-dialog .prompt-dialog-info-label { + color: #ffffff; + background-color: rgba(255, 255, 255, 0.1); } + +/* Polkit Dialog */ +.polkit-dialog-user-layout { + text-align: center; + spacing: 8px; + margin-bottom: 6px; } + .polkit-dialog-user-layout .polkit-dialog-user-root-label { + color: #cd9309; } + +/* Audio selection dialog */ +.audio-device-selection-dialog { + min-width: 24em; } + .audio-device-selection-dialog .audio-selection-box { + spacing: 12px; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #1a1a1a; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + background-color: transparent; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(26, 26, 26, 0.25), 5%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#1a1a1a, 7%), #ffffff, 87%), 5%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#1a1a1a, 7%), #ffffff, 87%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#1a1a1a, 9%), #ffffff, 87%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:active:hover { + background-color: st-lighten(st-lighten(#1a1a1a, 9%), 7%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#1a1a1a, 9%), #ffffff, 87%), 5%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:highlighted, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:selected, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#1a1a1a, 8%), #ffffff, 87%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:highlighted:hover, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:selected:hover, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:checked:hover { + background-color: st-lighten(st-lighten(#1a1a1a, 8%), 7%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:highlighted:active, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:selected:active, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:checked:active { + background-color: st-lighten(st-lighten(#1a1a1a, 8%), 9%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: #1a1a1a; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device .audio-selection-device-box { + padding: 12px; + spacing: 12px; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device .audio-selection-device-icon { + icon-size: 64px; } + +/* Welcome dialog */ +.welcome-dialog-image { + background-image: url("resource:///org/gnome/shell/theme/gnome-shell-start.svg"); + background-size: contain; + /* Reasonable maximum dimensions */ + height: 300px; + width: 300px; } + +/* Access portal dialog */ +.access-dialog { + text-align: center; } + +/* OSD */ +.osd-window { + text-align: center; + font-weight: bold; + spacing: 12px; + padding: 12px 18px; + margin-bottom: 4em; } + .osd-window > * { + spacing: 8px; } + .osd-window StIcon { + icon-size: 32px; } + .osd-window StLabel:ltr { + margin-right: 6px; } + .osd-window StLabel:rtl { + margin-left: 6px; } + .osd-window .level { + margin-bottom: 4px; + min-width: 160px; + -barlevel-height: 6px; + -barlevel-background-color: rgba(255, 255, 255, 0.1); + -barlevel-active-background-color: #ffffff; + -barlevel-overdrive-color: #c01c28; + -barlevel-overdrive-separator-width: 3px; } + .osd-window .level:first-child { + margin-bottom: 0; } + .osd-window .level:ltr { + margin-right: 6px; } + .osd-window .level:rtl { + margin-left: 6px; } + +.osd-monitor-label, .osd-break-countdown-label { + background-color: -st-accent-color; + color: -st-accent-fg-color; + border-radius: 16px; + font-size: 3em; + font-weight: bold; + font-feature-settings: "tnum"; + margin: 12px; + padding: 12px; + text-align: center; + min-width: 1.5em; } + +/* Pad OSD */ +.pad-osd-window { + padding: 32px; + background-color: rgba(0, 0, 0, 0.8); } + .pad-osd-window .pad-osd-title-box { + spacing: 12px; } + .pad-osd-window .pad-osd-title-menu-box { + spacing: 6px; } + +.combo-box-label { + width: 15em; } + +/* App Switcher */ +.switcher-popup { + padding: 0; + spacing: 24px; } + +.switcher-list { + padding: 12px; + border-radius: 28px; + box-shadow: 0 8px 8px 0 transparent; } + .switcher-list .switcher-list-item-container { + spacing: 12px; } + .switcher-list .item-box { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #000000; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + background-color: transparent; } + .switcher-list .item-box:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(0, 0, 0, 0.25), 5%); } + .switcher-list .item-box:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#000000, 7%), #ffffff, 87%), 5%); } + .switcher-list .item-box:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 7%), #ffffff, 87%); } + .switcher-list .item-box:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 9%), #ffffff, 87%); } + .switcher-list .item-box:active:hover { + background-color: st-lighten(st-lighten(#000000, 9%), 7%); } + .switcher-list .item-box:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#000000, 9%), #ffffff, 87%), 5%); } + .switcher-list .item-box:highlighted, .switcher-list .item-box:selected, .switcher-list .item-box:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 8%), #ffffff, 87%); } + .switcher-list .item-box:highlighted:hover, .switcher-list .item-box:selected:hover, .switcher-list .item-box:checked:hover { + background-color: st-lighten(st-lighten(#000000, 8%), 7%); } + .switcher-list .item-box:highlighted:active, .switcher-list .item-box:selected:active, .switcher-list .item-box:checked:active { + background-color: st-lighten(st-lighten(#000000, 8%), 9%); } + .switcher-list .item-box:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: #000000; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .switcher-list .item-box:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + .switcher-list .item-box:hover { + background: none; } + .switcher-list .item-box:selected { + background-color: rgba(255, 255, 255, 0.2); } + .switcher-list .item-box:selected { + background-color: rgba(255, 255, 255, 0.3); } + .switcher-list .separator { + width: 1px; + background: rgba(255, 255, 255, 0.5); } + .switcher-list .thumbnail-box { + padding: 2px; + spacing: 6px; } + .switcher-list .thumbnail { + width: 256px; + border-radius: 8px; } + +.switcher-arrow { + border-color: rgba(255, 255, 255, 0.8); + color: rgba(255, 255, 255, 0.8); } + .switcher-arrow:highlighted { + border-color: #ffffff; + color: #ffffff; } + +.input-source-switcher-symbol { + font-size: 34pt; + width: 96px; + height: 96px; } + +.cycler-highlight { + border: 5px solid -st-accent-color; } + +/* Workspace Switcher */ +.workspace-switcher { + margin-bottom: 4em; + spacing: 12px; + padding: 12px 18px; } + +.ws-switcher-indicator { + background-color: rgba(255, 255, 255, 0.5); + padding: 2.6666666667px; + margin: 13.3333333333px; + border-radius: 32px; } + .ws-switcher-indicator:active { + background-color: #ffffff; + padding: 5.3333333333px; + margin: 10.6666666667px; } + +.screenshot-ui-panel { + border-radius: 32px; + padding: 18px; + padding-bottom: 12px; + margin-bottom: 4em; + spacing: 12px; } + +.screenshot-ui-close-button { + padding: 6px !important; + margin-top: 12px; + box-shadow: 0 2px 4px 0 transparent; } + .screenshot-ui-close-button.left { + margin-left: 12px; } + .screenshot-ui-close-button.right { + margin-right: 12px; } + +.screenshot-ui-type-button { + min-width: 48px; + padding: 12px 18px; + border-radius: 14px; } + .screenshot-ui-type-button .icon-label-button-container { + spacing: 0.409em; } + .screenshot-ui-type-button .icon-label-button-container > StIcon { + icon-size: 32px; } + +.screenshot-ui-capture-button { + width: 32px; + height: 32px; + border-radius: 999px; + border: 4px #ffffff; + padding: 4px; } + .screenshot-ui-capture-button .screenshot-ui-capture-button-circle { + background-color: #ffffff; + transition-duration: 200ms; + border-radius: 999px; } + .screenshot-ui-capture-button .screenshot-ui-capture-button-circle:hover, .screenshot-ui-capture-button .screenshot-ui-capture-button-circle:focus { + background-color: #4d4d4d; } + .screenshot-ui-capture-button:hover .screenshot-ui-capture-button-circle, .screenshot-ui-capture-button:focus .screenshot-ui-capture-button-circle { + background-color: #cccccc; } + .screenshot-ui-capture-button:active .screenshot-ui-capture-button-circle { + background-color: gray; } + .screenshot-ui-capture-button:cast .screenshot-ui-capture-button-circle { + background-color: #c01c28; } + .screenshot-ui-capture-button:cast:hover .screenshot-ui-capture-button-circle, .screenshot-ui-capture-button:cast:focus .screenshot-ui-capture-button-circle { + background-color: #d61f2d; } + .screenshot-ui-capture-button:cast:active .screenshot-ui-capture-button-circle { + background-color: #a11722; } + +.screenshot-ui-shot-cast-container { + background-color: rgba(255, 255, 255, 0.1); + border-radius: 999px; + padding: 3px; + spacing: 3px; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); } + +.screenshot-ui-shot-cast-button { + padding: 6px 12px; + background-color: transparent; + border-radius: 999px; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); } + .screenshot-ui-shot-cast-button > StIcon { + icon-size: 16px; } + .screenshot-ui-shot-cast-button:hover, .screenshot-ui-shot-cast-button:focus { + background-color: rgba(255, 255, 255, 0.2); } + .screenshot-ui-shot-cast-button:active { + background-color: rgba(255, 255, 255, 0.5); } + .screenshot-ui-shot-cast-button:checked { + background-color: #ffffff; + color: #000000; } + .screenshot-ui-shot-cast-button:insensitive { + color: rgba(255, 255, 255, 0.5); } + +.screenshot-ui-area-indicator-shade { + background-color: rgba(0, 0, 0, 0.3); } + +.screenshot-ui-area-selector .screenshot-ui-area-indicator-shade { + background-color: rgba(0, 0, 0, 0.5); } + +.screenshot-ui-area-selector .screenshot-ui-area-indicator-selection { + border: 2px white; } + +.screenshot-ui-area-selector-handle { + border-radius: 999px; + background-color: white; + box-shadow: 0 1px 3px 2px transparent; + width: 24px; + height: 24px; } + +.screenshot-ui-window-selector { + background-color: #000000; } + .screenshot-ui-window-selector .screenshot-ui-window-selector-window-container { + margin: 100px; } + .screenshot-ui-window-selector:primary-monitor .screenshot-ui-window-selector-window-container { + margin-bottom: 200px; } + +.screenshot-ui-window-selector-window-border { + transition-duration: 200ms; + border-radius: 16px; + border: 6px transparent; } + +.screenshot-ui-window-selector-check { + transition-duration: 200ms; + color: transparent; + border-radius: 999px; + border-width: 12px; + icon-size: 24px; } + +.screenshot-ui-window-selector-window:hover .screenshot-ui-window-selector-window-border { + border-color: st-darken(-st-accent-color, 15%); } + +.screenshot-ui-window-selector-window:checked .screenshot-ui-window-selector-window-border { + border-color: -st-accent-color; + background-color: st-transparentize(-st-accent-color, 0.8); } + +.screenshot-ui-window-selector-window:checked .screenshot-ui-window-selector-check { + color: -st-accent-fg-color; + background-color: -st-accent-color; } + +.screenshot-ui-screen-selector { + transition-duration: 200ms; + background-color: rgba(0, 0, 0, 0.5); } + .screenshot-ui-screen-selector:hover { + background-color: rgba(0, 0, 0, 0.3); } + .screenshot-ui-screen-selector:active { + background-color: rgba(0, 0, 0, 0.7); } + .screenshot-ui-screen-selector:checked { + background-color: transparent; + border: 2px white; } + +.screenshot-ui-tooltip { + text-align: center; + -y-offset: 24px; } + +/* Top Bar */ +#panel { + background-color: #000000; + font-weight: bold; + height: 2.2em; + transition-duration: 250ms; } + #panel .panel-button { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; + -natural-hpadding: 12px; + -minimum-hpadding: 6px; } + #panel .panel-button:focus, #panel .panel-button:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel .panel-button:active, #panel .panel-button:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel .panel-button:active:hover, #panel .panel-button:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel .panel-button .system-status-icon { + icon-size: 1.091em; + padding: 0 6px; + margin: 0 4px; } + #panel .panel-button .panel-status-indicators-box { + spacing: 4px; } + #panel .panel-button .panel-status-indicators-box > .system-status-icon { + padding: 0; } + #panel .panel-button#panelActivities StBoxLayout { + padding: 0 0.2045em; + spacing: 5px; } + #panel .panel-button#panelActivities .workspace-dot { + border-radius: 999px; + min-width: 0.5455em; + min-height: 0.5455em; + background-color: #ffffff; } + #panel .panel-button.screen-recording-indicator StBoxLayout, #panel .panel-button.screen-sharing-indicator StBoxLayout { + spacing: 0.409em; } + #panel .panel-button.screen-recording-indicator StIcon, #panel .panel-button.screen-sharing-indicator StIcon { + icon-size: 1.091em; } + #panel .panel-button.screen-recording-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #c01c28; } + #panel .panel-button.screen-recording-indicator:focus, #panel .panel-button.screen-recording-indicator:hover { + box-shadow: inset 0 0 0 100px #d61f2d; } + #panel .panel-button.screen-recording-indicator:active, #panel .panel-button.screen-recording-indicator:checked { + box-shadow: inset 0 0 0 100px #e02a37; } + #panel .panel-button.screen-recording-indicator:active:hover, #panel .panel-button.screen-recording-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #e13340; } + #panel .panel-button.screen-sharing-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #ff7800; } + #panel .panel-button.screen-sharing-indicator:focus, #panel .panel-button.screen-sharing-indicator:hover { + box-shadow: inset 0 0 0 100px #ff861a; } + #panel .panel-button.screen-sharing-indicator:active, #panel .panel-button.screen-sharing-indicator:checked { + box-shadow: inset 0 0 0 100px #ff902e; } + #panel .panel-button.screen-sharing-indicator:active:hover, #panel .panel-button.screen-sharing-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #ff9638; } + #panel .panel-button.clock-display { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; + background: none !important; + box-shadow: none !important; + border: none !important; } + #panel .panel-button.clock-display:focus, #panel .panel-button.clock-display:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel .panel-button.clock-display:active, #panel .panel-button.clock-display:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel .panel-button.clock-display:active:hover, #panel .panel-button.clock-display:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel .panel-button.clock-display .clock { + transition-duration: 150ms; + border: 3px solid transparent; + border-radius: 999px; } + #panel .panel-button.clock-display:focus .clock, #panel .panel-button.clock-display:hover .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel .panel-button.clock-display:active .clock, #panel .panel-button.clock-display:checked .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel .panel-button.clock-display:active .clock:hover, #panel .panel-button.clock-display:checked .clock:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel .panel-button.clock-display .messages-indicator { + icon-size: 1.091em; } + #panel:overview, #panel.unlock-screen, #panel.login-screen { + background-color: transparent; } + #panel:overview .panel-button.screen-recording-indicator, #panel.unlock-screen .panel-button.screen-recording-indicator, #panel.login-screen .panel-button.screen-recording-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #c01c28; } + #panel:overview .panel-button.screen-recording-indicator:focus, #panel:overview .panel-button.screen-recording-indicator:hover, #panel.unlock-screen .panel-button.screen-recording-indicator:focus, #panel.unlock-screen .panel-button.screen-recording-indicator:hover, #panel.login-screen .panel-button.screen-recording-indicator:focus, #panel.login-screen .panel-button.screen-recording-indicator:hover { + box-shadow: inset 0 0 0 100px #d61f2d; } + #panel:overview .panel-button.screen-recording-indicator:active, #panel:overview .panel-button.screen-recording-indicator:checked, #panel.unlock-screen .panel-button.screen-recording-indicator:active, #panel.unlock-screen .panel-button.screen-recording-indicator:checked, #panel.login-screen .panel-button.screen-recording-indicator:active, #panel.login-screen .panel-button.screen-recording-indicator:checked { + box-shadow: inset 0 0 0 100px #e02a37; } + #panel:overview .panel-button.screen-recording-indicator:active:hover, #panel:overview .panel-button.screen-recording-indicator:checked:hover, #panel.unlock-screen .panel-button.screen-recording-indicator:active:hover, #panel.unlock-screen .panel-button.screen-recording-indicator:checked:hover, #panel.login-screen .panel-button.screen-recording-indicator:active:hover, #panel.login-screen .panel-button.screen-recording-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #e13340; } + #panel:overview .panel-button.screen-sharing-indicator, #panel.unlock-screen .panel-button.screen-sharing-indicator, #panel.login-screen .panel-button.screen-sharing-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #ff7800; } + #panel:overview .panel-button.screen-sharing-indicator:focus, #panel:overview .panel-button.screen-sharing-indicator:hover, #panel.unlock-screen .panel-button.screen-sharing-indicator:focus, #panel.unlock-screen .panel-button.screen-sharing-indicator:hover, #panel.login-screen .panel-button.screen-sharing-indicator:focus, #panel.login-screen .panel-button.screen-sharing-indicator:hover { + box-shadow: inset 0 0 0 100px #ff861a; } + #panel:overview .panel-button.screen-sharing-indicator:active, #panel:overview .panel-button.screen-sharing-indicator:checked, #panel.unlock-screen .panel-button.screen-sharing-indicator:active, #panel.unlock-screen .panel-button.screen-sharing-indicator:checked, #panel.login-screen .panel-button.screen-sharing-indicator:active, #panel.login-screen .panel-button.screen-sharing-indicator:checked { + box-shadow: inset 0 0 0 100px #ff902e; } + #panel:overview .panel-button.screen-sharing-indicator:active:hover, #panel:overview .panel-button.screen-sharing-indicator:checked:hover, #panel.unlock-screen .panel-button.screen-sharing-indicator:active:hover, #panel.unlock-screen .panel-button.screen-sharing-indicator:checked:hover, #panel.login-screen .panel-button.screen-sharing-indicator:active:hover, #panel.login-screen .panel-button.screen-sharing-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #ff9638; } + #panel.unlock-screen .panel-button, #panel.login-screen .panel-button { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; } + #panel.unlock-screen .panel-button:focus, #panel.unlock-screen .panel-button:hover, #panel.login-screen .panel-button:focus, #panel.login-screen .panel-button:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel.unlock-screen .panel-button:active, #panel.unlock-screen .panel-button:checked, #panel.login-screen .panel-button:active, #panel.login-screen .panel-button:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel.unlock-screen .panel-button:active:hover, #panel.unlock-screen .panel-button:checked:hover, #panel.login-screen .panel-button:active:hover, #panel.login-screen .panel-button:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel.unlock-screen .panel-button.clock-display, #panel.login-screen .panel-button.clock-display { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; + background: none !important; + box-shadow: none !important; + border: none !important; } + #panel.unlock-screen .panel-button.clock-display:focus, #panel.unlock-screen .panel-button.clock-display:hover, #panel.login-screen .panel-button.clock-display:focus, #panel.login-screen .panel-button.clock-display:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel.unlock-screen .panel-button.clock-display:active, #panel.unlock-screen .panel-button.clock-display:checked, #panel.login-screen .panel-button.clock-display:active, #panel.login-screen .panel-button.clock-display:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel.unlock-screen .panel-button.clock-display:active:hover, #panel.unlock-screen .panel-button.clock-display:checked:hover, #panel.login-screen .panel-button.clock-display:active:hover, #panel.login-screen .panel-button.clock-display:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel.unlock-screen .panel-button.clock-display .clock, #panel.login-screen .panel-button.clock-display .clock { + transition-duration: 150ms; + border: 3px solid transparent; + border-radius: 999px; } + #panel.unlock-screen .panel-button.clock-display:focus .clock, #panel.unlock-screen .panel-button.clock-display:hover .clock, #panel.login-screen .panel-button.clock-display:focus .clock, #panel.login-screen .panel-button.clock-display:hover .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel.unlock-screen .panel-button.clock-display:active .clock, #panel.unlock-screen .panel-button.clock-display:checked .clock, #panel.login-screen .panel-button.clock-display:active .clock, #panel.login-screen .panel-button.clock-display:checked .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel.unlock-screen .panel-button.clock-display:active .clock:hover, #panel.unlock-screen .panel-button.clock-display:checked .clock:hover, #panel.login-screen .panel-button.clock-display:active .clock:hover, #panel.login-screen .panel-button.clock-display:checked .clock:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel:overview .panel-button { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; } + #panel:overview .panel-button:focus, #panel:overview .panel-button:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel:overview .panel-button:active, #panel:overview .panel-button:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel:overview .panel-button:active:hover, #panel:overview .panel-button:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel:overview .panel-button#panelActivities .workspace-dot { + background-color: #ffffff; } + #panel:overview .panel-button.clock-display { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; + background: none !important; + box-shadow: none !important; + border: none !important; } + #panel:overview .panel-button.clock-display:focus, #panel:overview .panel-button.clock-display:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel:overview .panel-button.clock-display:active, #panel:overview .panel-button.clock-display:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel:overview .panel-button.clock-display:active:hover, #panel:overview .panel-button.clock-display:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel:overview .panel-button.clock-display .clock { + transition-duration: 150ms; + border: 3px solid transparent; + border-radius: 999px; } + #panel:overview .panel-button.clock-display:focus .clock, #panel:overview .panel-button.clock-display:hover .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel:overview .panel-button.clock-display:active .clock, #panel:overview .panel-button.clock-display:checked .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel:overview .panel-button.clock-display:active .clock:hover, #panel:overview .panel-button.clock-display:checked .clock:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel .panel-status-indicators-box { + spacing: 2px; } + #panel .power-status.panel-status-indicators-box { + spacing: 0; } + #panel .privacy-indicator { + color: #ff7800; } + +.clock-display-box { + spacing: 2px; } + .clock-display-box .clock { + padding-left: 0.818em; + padding-right: 0.818em; } + +/* Activities Ripple */ +.ripple-box { + background-color: rgba(255, 255, 255, 0.2); + box-shadow: 0 0 2px 2px rgba(255, 255, 255, 0.2); + width: 52px; + height: 52px; + border-radius: 0 0 52px 0; } + .ripple-box:rtl { + border-radius: 0 0 0 52px; } + +.quick-settings { + padding: 18px; + border-radius: 36px; } + .quick-settings .icon-button, .quick-settings .login-dialog-button.a11y-button, .quick-settings .login-dialog-button.cancel-button, .quick-settings .login-dialog-button.switch-user-button, .quick-settings .login-dialog-button.login-dialog-session-list-button, .quick-settings .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .quick-settings .pager-button, .quick-settings .message-notification-group .message-collapse-button, .message-notification-group .quick-settings .message-collapse-button, .quick-settings .message .message-header .message-expand-button, .message .message-header .quick-settings .message-expand-button, + .quick-settings .message .message-header .message-close-button, + .message .message-header .quick-settings .message-close-button, .quick-settings .screenshot-ui-show-pointer-button, .quick-settings .button { + padding: 10.5px; } + +.quick-settings-grid { + spacing-rows: 12px; + spacing-columns: 12px; } + +.quick-toggle, .quick-toggle-has-menu { + border-radius: 999px; + min-width: 12em; + max-width: 12em; + min-height: 3.273em; } + +.quick-toggle { + /* Move padding into the box; this is to allow menu arrows + to extend to the border */ } + .quick-toggle > StBoxLayout { + spacing: 9px; } + .quick-toggle.button { + padding: 0; } + .quick-toggle > StBoxLayout { + padding: 0 12px; } + .quick-toggle:ltr > StBoxLayout { + padding-left: 15px; } + .quick-toggle:rtl > StBoxLayout { + padding-right: 15px; } + .quick-toggle .quick-toggle-subtitle { + font-weight: normal; } + .quick-toggle .quick-toggle-icon { + icon-size: 1.091em; } + +.quick-toggle-has-menu .quick-toggle { + min-width: auto; + max-width: auto; } + .quick-toggle-has-menu .quick-toggle:ltr { + border-radius: 999px 0 0 999px; } + .quick-toggle-has-menu .quick-toggle:ltr > StBoxLayout { + padding-right: 0.6135em; } + .quick-toggle-has-menu .quick-toggle:rtl { + border-radius: 0 999px 999px 0; } + .quick-toggle-has-menu .quick-toggle:rtl > StBoxLayout { + padding-left: 0.6135em; } + .quick-toggle-has-menu .quick-toggle:ltr:last-child { + border-radius: 999px; } + .quick-toggle-has-menu .quick-toggle:rtl:last-child { + border-radius: 999px; } + +.quick-toggle-has-menu .quick-toggle-menu-button { + padding: 0.409em 0.71575em; } + .quick-toggle-has-menu .quick-toggle-menu-button:ltr { + border-radius: 0 999px 999px 0; } + .quick-toggle-has-menu .quick-toggle-menu-button:rtl { + border-radius: 999px 0 0 999px; } + +.quick-toggle-has-menu .quick-toggle-separator { + width: 1px; } + +.quick-toggle-has-menu .quick-toggle-menu-button { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #525252, 9%), #ffffff, 87%); } + .quick-toggle-has-menu .quick-toggle-menu-button:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(#ffffff, #525252, 9%), #ffffff, 87%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #525252, 9%), 4%), #ffffff, 87%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #525252, 9%), 4%), #ffffff, 87%); } + .quick-toggle-has-menu .quick-toggle-menu-button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #525252, 9%), 9%), #ffffff, 87%); } + .quick-toggle-has-menu .quick-toggle-menu-button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #525252, 9%), 9%), 4%); } + .quick-toggle-has-menu .quick-toggle-menu-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #525252, 9%), 9%), #ffffff, 87%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + color: -st-accent-fg-color; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 75%), #ffffff, 87%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + color: -st-accent-fg-color; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + box-shadow: inset 0 0 0 2px st-transparentize(st-lighten(-st-accent-color, 30%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(-st-accent-color, #ffffff, 75%), #ffffff, 87%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(-st-accent-color, #ffffff, 75%), 4%), #ffffff, 87%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + color: -st-accent-fg-color; + background-color: st-mix(st-lighten(st-mix(-st-accent-color, #ffffff, 75%), 4%), #ffffff, 87%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + color: -st-accent-fg-color; + background-color: st-mix(st-lighten(st-mix(-st-accent-color, #ffffff, 75%), 9%), #ffffff, 87%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:active:hover { + background-color: st-lighten(st-lighten(st-mix(-st-accent-color, #ffffff, 75%), 9%), 4%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(-st-accent-color, #ffffff, 75%), 9%), #ffffff, 87%), 5%); } + +.quick-toggle-has-menu:checked .quick-toggle-separator { + background-color: transparent; } + +.quick-toggle-has-menu .quick-toggle-separator { + background-color: transparent; } + +.quick-slider > StBoxLayout { + spacing: 6px; } + +.quick-slider .icon-button, .quick-slider .login-dialog-button.a11y-button, .quick-slider .login-dialog-button.cancel-button, .quick-slider .login-dialog-button.switch-user-button, .quick-slider .login-dialog-button.login-dialog-session-list-button, .quick-slider .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .quick-slider .pager-button, .quick-slider .message-notification-group .message-collapse-button, .message-notification-group .quick-slider .message-collapse-button, .quick-slider .message .message-header .message-expand-button, .message .message-header .quick-slider .message-expand-button, +.quick-slider .message .message-header .message-close-button, +.message .message-header .quick-slider .message-close-button, .quick-slider .screenshot-ui-show-pointer-button { + padding: 6px; } + +.quick-slider .slider-bin { + padding: 6px; + border-radius: 999px; } + .quick-slider .slider-bin:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(#ffffff, #1a1a1a, 9%), #ffffff, 87%), 5%); } + .quick-slider .slider-bin:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 4%), #ffffff, 87%), 5%); } + +.quick-toggle-menu { + border-radius: 24px; - margin: 12px 18px 0; } ++ margin: 12px 0 0; } + .quick-toggle-menu:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #1a1a1a, 9%), #ffffff, 87%); } + .quick-toggle-menu .popup-menu-item > StIcon { + -st-icon-style: symbolic; + icon-size: 1.091em; } + .quick-toggle-menu .header { + spacing-rows: 3px; + spacing-columns: 12px; + padding-bottom: 12px; } + .quick-toggle-menu .header .icon { + icon-size: 1.6365em; + border-radius: 999px; + padding: 9px; + background-color: rgba(255, 255, 255, 0.2); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); } + .quick-toggle-menu .header .icon.active { + background-color: -st-accent-color; + color: -st-accent-fg-color; } + .quick-toggle-menu .header .icon.active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + +.quick-settings-system-item > StBoxLayout { + spacing: 12px; } + +.quick-settings-system-item .power-item { + min-height: 0; + min-width: 0; } + .quick-settings-system-item .power-item:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #1a1a1a, 9%), #ffffff, 87%); + background-color: transparent; } + +.nm-network-item .wireless-secure-icon { + icon-size: 0.5455em; } + +.bt-device-item .popup-menu-icon { + -st-icon-style: symbolic; } + +.bt-menu-placeholder.popup-menu-item { + text-align: center; + padding: 2em 4em; } + +.device-subtitle { + color: rgba(255, 255, 255, 0.5); } + +.keyboard-brightness-level { + spacing: 6px; } + +.background-apps-quick-toggle { + min-height: 2.728em; + background-color: transparent; } + .background-apps-quick-toggle StIcon { + icon-size: 1.091em !important; } + +.background-app-item .popup-menu-icon { + icon-size: 32px !important; + -st-icon-style: regular !important; } + +.background-app-item .icon-button, .background-app-item .login-dialog-button.a11y-button, .background-app-item .login-dialog-button.cancel-button, .background-app-item .login-dialog-button.switch-user-button, .background-app-item .login-dialog-button.login-dialog-session-list-button, .background-app-item .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .background-app-item .pager-button, .background-app-item .message-notification-group .message-collapse-button, .message-notification-group .background-app-item .message-collapse-button, .background-app-item .message .message-header .message-expand-button, .message .message-header .background-app-item .message-expand-button, +.background-app-item .message .message-header .message-close-button, +.message .message-header .background-app-item .message-close-button, .background-app-item .screenshot-ui-show-pointer-button { + padding: 6px; + background-color: rgba(255, 255, 255, 0.13); } + .background-app-item .icon-button:hover, .background-app-item .login-dialog-button.a11y-button:hover, .background-app-item .login-dialog-button.cancel-button:hover, .background-app-item .login-dialog-button.switch-user-button:hover, .background-app-item .login-dialog-button.login-dialog-session-list-button:hover, .background-app-item .calendar .calendar-month-header .pager-button:hover, .calendar .calendar-month-header .background-app-item .pager-button:hover, .background-app-item .message-notification-group .message-collapse-button:hover, .message-notification-group .background-app-item .message-collapse-button:hover, .background-app-item .message .message-header .message-expand-button:hover, .message .message-header .background-app-item .message-expand-button:hover, + .background-app-item .message .message-header .message-close-button:hover, + .message .message-header .background-app-item .message-close-button:hover, .background-app-item .screenshot-ui-show-pointer-button:hover { + background-color: rgba(255, 255, 255, 0.22); } + .background-app-item .icon-button:active, .background-app-item .login-dialog-button.a11y-button:active, .background-app-item .login-dialog-button.cancel-button:active, .background-app-item .login-dialog-button.switch-user-button:active, .background-app-item .login-dialog-button.login-dialog-session-list-button:active, .background-app-item .calendar .calendar-month-header .pager-button:active, .calendar .calendar-month-header .background-app-item .pager-button:active, .background-app-item .message-notification-group .message-collapse-button:active, .message-notification-group .background-app-item .message-collapse-button:active, .background-app-item .message .message-header .message-expand-button:active, .message .message-header .background-app-item .message-expand-button:active, + .background-app-item .message .message-header .message-close-button:active, + .message .message-header .background-app-item .message-close-button:active, .background-app-item .screenshot-ui-show-pointer-button:active { + background-color: rgba(255, 255, 255, 0.31); } + +.background-app-item .spinner { + padding: 6px; } + +.background-app-item.popup-inactive-menu-item { + color: #ffffff; } + +/* OVERVIEW */ +.secondary-monitor-workspaces { + spacing: 12px; } + +#overviewGroup { + background-color: #000000; } + +/* Window Picker */ +.window-picker { + spacing: 6px; } + +.window-icon { + background-color: #000000; + padding: 12px; + border-radius: 16px; + border: 2px solid rgba(255, 255, 255, 0.4); + margin: 18px; } + +.window-close, .screenshot-ui-close-button { + background-color: rgba(31, 31, 31, 0.98); + color: #ffffff; + border-radius: 999px; + box-shadow: 0 2px 4px 0 transparent; + padding: 3px; + height: 32px; + width: 32px; + transition-duration: 100ms; + border: 2px solid transparent; + border-color: rgba(255, 255, 255, 0.4); } + .window-close StIcon, .screenshot-ui-close-button StIcon { + icon-size: 24px; } + .window-close:hover, .screenshot-ui-close-button:hover { + background-color: rgba(48, 48, 48, 0.98); } + .window-close:active, .screenshot-ui-close-button:active { + background-color: rgba(64, 64, 64, 0.98); } + +.workspace-background { + border-radius: 30px; + background-color: rgba(3, 2, 1, 0); + box-shadow: 0 4px 16px 4px transparent; } + +.search-entry { + border-radius: 999px; + margin-top: 12px; + margin-bottom: 6px; + width: 24em; } + .search-entry .search-entry-icon { + icon-size: 1.091em; + margin-top: 2px; + padding: 0 4px; } + +/* Search */ +#searchResults { + margin: 0 4px; } + +#searchResultsContent { + max-width: 1044px; } + +.search-section { + spacing: 18px; } + .search-section .search-section-separator { + height: 8px; + background-color: transparent; } + +.search-section-content { + background-color: #252525; + color: #ffffff; + border-radius: 24px; + padding: 12px; + margin: 0 12px; + border: 2px solid transparent; + border-color: rgba(255, 255, 255, 0.4); } + +.list-search-result, .search-provider-icon { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #252525; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + background-color: transparent; + border-radius: 13.2px; } + .list-search-result:focus, .search-provider-icon:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(37, 37, 37, 0.25), 5%); } + .list-search-result:focus:hover, .search-provider-icon:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#252525, 7%), #ffffff, 87%), 5%); } + .list-search-result:hover, .search-provider-icon:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 7%), #ffffff, 87%); } + .list-search-result:active, .search-provider-icon:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 9%), #ffffff, 87%); } + .list-search-result:active:hover, .search-provider-icon:active:hover { + background-color: st-lighten(st-lighten(#252525, 9%), 7%); } + .list-search-result:active:focus, .search-provider-icon:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#252525, 9%), #ffffff, 87%), 5%); } + .list-search-result:highlighted, .search-provider-icon:highlighted, .list-search-result:selected, .search-provider-icon:selected, .list-search-result:checked, .search-provider-icon:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 8%), #ffffff, 87%); } + .list-search-result:highlighted:hover, .search-provider-icon:highlighted:hover, .list-search-result:selected:hover, .search-provider-icon:selected:hover, .list-search-result:checked:hover, .search-provider-icon:checked:hover { + background-color: st-lighten(st-lighten(#252525, 8%), 7%); } + .list-search-result:highlighted:active, .search-provider-icon:highlighted:active, .list-search-result:selected:active, .search-provider-icon:selected:active, .list-search-result:checked:active, .search-provider-icon:checked:active { + background-color: st-lighten(st-lighten(#252525, 8%), 9%); } + .list-search-result:insensitive, .search-provider-icon:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: #252525; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .list-search-result:drop, .search-provider-icon:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + +.search-statusbox { + spacing: 24px; } + +.search-statustext { + color: rgba(255, 255, 255, 0.8); } + +.grid-search-results { + spacing: 30px; } + +.search-provider-icon:ltr { + margin-right: 4px; } + +.search-provider-icon:rtl { + margin-left: 4px; } + +.search-provider-icon .list-search-provider-content { + spacing: 12px; } + .search-provider-icon .list-search-provider-content .list-search-provider-details { + width: 120px; + color: #ffffff; } + +.list-search-results { + spacing: 6px; } + +.list-search-result .list-search-result-content { + spacing: 6px; } + +.list-search-result .list-search-result-title { + spacing: 12px; + font-weight: bold; } + +.list-search-result .list-search-result-description { + color: #b6b6b6; + color: #ffffff; } + +/* Dash */ +#dash { + padding-left: 6px; + padding-right: 6px; } + #dash .dash-background { + background-color: #252525; + border-radius: 28px; + padding-top: 12px; + padding-bottom: 12px; + padding-left: 10px; + padding-right: 10px; + box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.4); } + #dash .dash-item-container .placeholder { + background-image: none; + background-size: contain; + height: 32px; } + #dash .dash-item-container .empty-dash-drop-target { + width: 32px; + height: 32px; } + #dash .dash-item-container .show-apps, + #dash .dash-item-container .overview-tile, + #dash .dash-item-container .grid-search-result { + margin: 0 2px; + padding-bottom: 12px; } + #dash .dash-item-container .show-apps .overview-icon, + #dash .dash-item-container .overview-tile .overview-icon, + #dash .dash-item-container .grid-search-result .overview-icon { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #252525; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + #dash .dash-item-container .show-apps:focus .overview-icon, + #dash .dash-item-container .overview-tile:focus .overview-icon, + #dash .dash-item-container .grid-search-result:focus .overview-icon { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(37, 37, 37, 0.25), 5%); } + #dash .dash-item-container .show-apps:focus .overview-icon:hover, + #dash .dash-item-container .overview-tile:focus .overview-icon:hover, + #dash .dash-item-container .grid-search-result:focus .overview-icon:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#252525, 7%), #ffffff, 87%), 5%); } + #dash .dash-item-container .show-apps:hover .overview-icon, + #dash .dash-item-container .overview-tile:hover .overview-icon, + #dash .dash-item-container .grid-search-result:hover .overview-icon { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 7%), #ffffff, 87%); } + #dash .dash-item-container .show-apps:active .overview-icon, + #dash .dash-item-container .overview-tile:active .overview-icon, + #dash .dash-item-container .grid-search-result:active .overview-icon { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 9%), #ffffff, 87%); } + #dash .dash-item-container .show-apps:active .overview-icon:hover, + #dash .dash-item-container .overview-tile:active .overview-icon:hover, + #dash .dash-item-container .grid-search-result:active .overview-icon:hover { + background-color: st-lighten(st-lighten(#252525, 9%), 7%); } + #dash .dash-item-container .show-apps:active .overview-icon:focus, + #dash .dash-item-container .overview-tile:active .overview-icon:focus, + #dash .dash-item-container .grid-search-result:active .overview-icon:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#252525, 9%), #ffffff, 87%), 5%); } + #dash .dash-item-container .show-apps:checked .overview-icon, + #dash .dash-item-container .overview-tile:checked .overview-icon, + #dash .dash-item-container .grid-search-result:checked .overview-icon { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 8%), #ffffff, 87%); } + #dash .dash-item-container .show-apps:checked .overview-icon:hover, + #dash .dash-item-container .overview-tile:checked .overview-icon:hover, + #dash .dash-item-container .grid-search-result:checked .overview-icon:hover { + background-color: st-lighten(st-lighten(#252525, 8%), 7%); } + #dash .dash-item-container .show-apps:checked .overview-icon:active, + #dash .dash-item-container .overview-tile:checked .overview-icon:active, + #dash .dash-item-container .grid-search-result:checked .overview-icon:active { + background-color: st-lighten(st-lighten(#252525, 8%), 9%); } + #dash .dash-item-container .app-grid-running-dot { + offset-y: -13px; } + #dash .dash-separator { + width: 1px; + margin-left: 4px; + margin-right: 4px; + background-color: rgba(255, 255, 255, 0.1); + width: 2px; + background-color: rgba(255, 255, 255, 0.4); } + #dash .dash-separator, + #dash .dash-background { + margin-bottom: 12px; } + +.dash-label { + -y-offset: 8px; } + +/* App Grid */ +.icon-grid { + row-spacing: 12px; + column-spacing: 12px; + max-row-spacing: 36px; + max-column-spacing: 36px; + page-padding-top: 24px; + page-padding-bottom: 24px; + page-padding-left: 18px; + page-padding-right: 18px; } + +/* App Icons */ +.overview-tile, .grid-search-result { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #000000; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + background-color: transparent; + border-radius: 24px; + padding: 12px; } + .overview-tile:focus, .grid-search-result:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(0, 0, 0, 0.25), 5%); } + .overview-tile:focus:hover, .grid-search-result:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#000000, 7%), #ffffff, 87%), 5%); } + .overview-tile:hover, .grid-search-result:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 7%), #ffffff, 87%); } + .overview-tile:active, .grid-search-result:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 9%), #ffffff, 87%); } + .overview-tile:active:hover, .grid-search-result:active:hover { + background-color: st-lighten(st-lighten(#000000, 9%), 7%); } + .overview-tile:active:focus, .grid-search-result:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#000000, 9%), #ffffff, 87%), 5%); } + .overview-tile:highlighted, .grid-search-result:highlighted, .overview-tile:selected, .grid-search-result:selected, .overview-tile:checked, .grid-search-result:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 8%), #ffffff, 87%); } + .overview-tile:highlighted:hover, .grid-search-result:highlighted:hover, .overview-tile:selected:hover, .grid-search-result:selected:hover, .overview-tile:checked:hover, .grid-search-result:checked:hover { + background-color: st-lighten(st-lighten(#000000, 8%), 7%); } + .overview-tile:highlighted:active, .grid-search-result:highlighted:active, .overview-tile:selected:active, .grid-search-result:selected:active, .overview-tile:checked:active, .grid-search-result:checked:active { + background-color: st-lighten(st-lighten(#000000, 8%), 9%); } + .overview-tile:insensitive, .grid-search-result:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: #000000; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .overview-tile:drop, .grid-search-result:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + .overview-tile .overview-icon.overview-icon-with-label > StBoxLayout, .grid-search-result .overview-icon.overview-icon-with-label > StBoxLayout { + spacing: 6px; } + +.app-folder { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #000000, 9%), #ffffff, 87%); } + .app-folder:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(#ffffff, #000000, 9%), #ffffff, 87%), 5%); } + .app-folder:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 4%), #ffffff, 87%), 5%); } + .app-folder:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 4%), #ffffff, 87%); } + .app-folder:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%); } + .app-folder:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), 4%); } + .app-folder:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%), 5%); } + .app-folder:highlighted, .app-folder:selected, .app-folder:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 8%), #ffffff, 87%); } + .app-folder:highlighted:hover, .app-folder:selected:hover, .app-folder:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #000000, 9%), 8%), 4%); } + .app-folder:highlighted:active, .app-folder:selected:active, .app-folder:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #000000, 9%), 8%), 9%); } + .app-folder:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: st-darken(st-mix(#ffffff, #000000, 9%), 3%); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .app-folder:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + +.app-grid-running-dot { + height: 5px; + width: 5px; + border-radius: 5px; + background-color: #ffffff; + offset-y: 6px; } + +.app-folder-dialog-container { + padding-top: 2.2em; } + +.app-folder-dialog { + width: 720px; + height: 720px; + border-radius: 64px; + background-color: #252525; + color: #ffffff; + padding: 0 2px; + box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.4); } + .app-folder-dialog .folder-name-container { + padding: 24px 36px; + padding-bottom: 0; } + .app-folder-dialog .folder-name-container .folder-name-entry { + width: 12em; } + .app-folder-dialog .icon-button, .app-folder-dialog .login-dialog-button.a11y-button, .app-folder-dialog .login-dialog-button.cancel-button, .app-folder-dialog .login-dialog-button.switch-user-button, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button, .app-folder-dialog .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .app-folder-dialog .pager-button, .app-folder-dialog .message-notification-group .message-collapse-button, .message-notification-group .app-folder-dialog .message-collapse-button, .app-folder-dialog .message .message-header .message-expand-button, .message .message-header .app-folder-dialog .message-expand-button, + .app-folder-dialog .message .message-header .message-close-button, + .message .message-header .app-folder-dialog .message-close-button, .app-folder-dialog .screenshot-ui-show-pointer-button { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #252525, 9%), #ffffff, 87%); } + .app-folder-dialog .icon-button:hover, .app-folder-dialog .login-dialog-button.a11y-button:hover, .app-folder-dialog .login-dialog-button.cancel-button:hover, .app-folder-dialog .login-dialog-button.switch-user-button:hover, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:hover, .app-folder-dialog .calendar .calendar-month-header .pager-button:hover, .calendar .calendar-month-header .app-folder-dialog .pager-button:hover, .app-folder-dialog .message-notification-group .message-collapse-button:hover, .message-notification-group .app-folder-dialog .message-collapse-button:hover, .app-folder-dialog .message .message-header .message-expand-button:hover, .message .message-header .app-folder-dialog .message-expand-button:hover, + .app-folder-dialog .message .message-header .message-close-button:hover, + .message .message-header .app-folder-dialog .message-close-button:hover, .app-folder-dialog .screenshot-ui-show-pointer-button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #252525, 9%), 4%), #ffffff, 87%); } + .app-folder-dialog .icon-button:active, .app-folder-dialog .login-dialog-button.a11y-button:active, .app-folder-dialog .login-dialog-button.cancel-button:active, .app-folder-dialog .login-dialog-button.switch-user-button:active, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:active, .app-folder-dialog .calendar .calendar-month-header .pager-button:active, .calendar .calendar-month-header .app-folder-dialog .pager-button:active, .app-folder-dialog .message-notification-group .message-collapse-button:active, .message-notification-group .app-folder-dialog .message-collapse-button:active, .app-folder-dialog .message .message-header .message-expand-button:active, .message .message-header .app-folder-dialog .message-expand-button:active, + .app-folder-dialog .message .message-header .message-close-button:active, + .message .message-header .app-folder-dialog .message-close-button:active, .app-folder-dialog .screenshot-ui-show-pointer-button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #252525, 9%), 9%), #ffffff, 87%); } + .app-folder-dialog .icon-button:active:hover, .app-folder-dialog .login-dialog-button.a11y-button:active:hover, .app-folder-dialog .login-dialog-button.cancel-button:active:hover, .app-folder-dialog .login-dialog-button.switch-user-button:active:hover, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:active:hover, .app-folder-dialog .calendar .calendar-month-header .pager-button:active:hover, .calendar .calendar-month-header .app-folder-dialog .pager-button:active:hover, .app-folder-dialog .message-notification-group .message-collapse-button:active:hover, .message-notification-group .app-folder-dialog .message-collapse-button:active:hover, .app-folder-dialog .message .message-header .message-expand-button:active:hover, .message .message-header .app-folder-dialog .message-expand-button:active:hover, + .app-folder-dialog .message .message-header .message-close-button:active:hover, + .message .message-header .app-folder-dialog .message-close-button:active:hover, .app-folder-dialog .screenshot-ui-show-pointer-button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #252525, 9%), 9%), 4%); } + .app-folder-dialog .icon-button:active:focus, .app-folder-dialog .login-dialog-button.a11y-button:active:focus, .app-folder-dialog .login-dialog-button.cancel-button:active:focus, .app-folder-dialog .login-dialog-button.switch-user-button:active:focus, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:active:focus, .app-folder-dialog .calendar .calendar-month-header .pager-button:active:focus, .calendar .calendar-month-header .app-folder-dialog .pager-button:active:focus, .app-folder-dialog .message-notification-group .message-collapse-button:active:focus, .message-notification-group .app-folder-dialog .message-collapse-button:active:focus, .app-folder-dialog .message .message-header .message-expand-button:active:focus, .message .message-header .app-folder-dialog .message-expand-button:active:focus, + .app-folder-dialog .message .message-header .message-close-button:active:focus, + .message .message-header .app-folder-dialog .message-close-button:active:focus, .app-folder-dialog .screenshot-ui-show-pointer-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #252525, 9%), 9%), #ffffff, 87%), 5%); } + .app-folder-dialog .page-indicators { + margin-bottom: 24px; } + .app-folder-dialog .page-navigation-arrow { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #252525; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .app-folder-dialog .page-navigation-arrow:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 7%), #ffffff, 87%); } + .app-folder-dialog .page-navigation-arrow:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 9%), #ffffff, 87%); } + .app-folder-dialog .page-navigation-arrow:active:hover { + background-color: st-lighten(st-lighten(#252525, 9%), 7%); } + .app-folder-dialog .page-navigation-arrow:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#252525, 9%), #ffffff, 87%), 5%); } + .app-folder-dialog .overview-tile, .app-folder-dialog .grid-search-result { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #252525; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + background-color: transparent; } + .app-folder-dialog .overview-tile:focus, .app-folder-dialog .grid-search-result:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(37, 37, 37, 0.25), 5%); } + .app-folder-dialog .overview-tile:focus:hover, .app-folder-dialog .grid-search-result:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#252525, 7%), #ffffff, 87%), 5%); } + .app-folder-dialog .overview-tile:hover, .app-folder-dialog .grid-search-result:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 7%), #ffffff, 87%); } + .app-folder-dialog .overview-tile:active, .app-folder-dialog .grid-search-result:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 9%), #ffffff, 87%); } + .app-folder-dialog .overview-tile:active:hover, .app-folder-dialog .grid-search-result:active:hover { + background-color: st-lighten(st-lighten(#252525, 9%), 7%); } + .app-folder-dialog .overview-tile:active:focus, .app-folder-dialog .grid-search-result:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#252525, 9%), #ffffff, 87%), 5%); } + .app-folder-dialog .overview-tile:highlighted, .app-folder-dialog .grid-search-result:highlighted, .app-folder-dialog .overview-tile:selected, .app-folder-dialog .grid-search-result:selected, .app-folder-dialog .overview-tile:checked, .app-folder-dialog .grid-search-result:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#252525, 8%), #ffffff, 87%); } + .app-folder-dialog .overview-tile:highlighted:hover, .app-folder-dialog .grid-search-result:highlighted:hover, .app-folder-dialog .overview-tile:selected:hover, .app-folder-dialog .grid-search-result:selected:hover, .app-folder-dialog .overview-tile:checked:hover, .app-folder-dialog .grid-search-result:checked:hover { + background-color: st-lighten(st-lighten(#252525, 8%), 7%); } + .app-folder-dialog .overview-tile:highlighted:active, .app-folder-dialog .grid-search-result:highlighted:active, .app-folder-dialog .overview-tile:selected:active, .app-folder-dialog .grid-search-result:selected:active, .app-folder-dialog .overview-tile:checked:active, .app-folder-dialog .grid-search-result:checked:active { + background-color: st-lighten(st-lighten(#252525, 8%), 9%); } + .app-folder-dialog .overview-tile:insensitive, .app-folder-dialog .grid-search-result:insensitive { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: st-transparentize(#ffffff, 0.5); + background-color: #252525; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .app-folder-dialog .overview-tile:drop, .app-folder-dialog .grid-search-result:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + +.rename-folder-popup .rename-folder-popup-item { + spacing: 6px; } + .rename-folder-popup .rename-folder-popup-item:ltr, .rename-folder-popup .rename-folder-popup-item:rtl { + padding: 0 12px; } + +.page-indicator { + padding: 6px 12px 0; + transition-duration: 400ms; } + .page-indicator .page-indicator-icon { + width: 10px; + height: 10px; + border-radius: 999px; + background-color: #ffffff; + transition-duration: 400ms; } + +.apps-scroll-view { + padding: 0; } + +.system-action-icon { + background-color: rgba(255, 255, 255, 0.1); + color: #ffffff; + border-radius: 999px; + icon-size: 48px; + box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.4); } + +.page-navigation-hint.dnd { + background: rgba(255, 255, 255, 0.1); } + +.page-navigation-hint.next:ltr, .page-navigation-hint.previous:rtl { + background-gradient-start: rgba(255, 255, 255, 0.05); + background-gradient-end: transparent; + background-gradient-direction: horizontal; + border-radius: 24px 0px 0px 24px; } + +.page-navigation-hint.previous:ltr, .page-navigation-hint.next:rtl { + background-gradient-start: transparent; + background-gradient-end: rgba(255, 255, 255, 0.05); + background-gradient-direction: horizontal; + border-radius: 0px 24px 24px 0px; } + +.page-navigation-arrow { + margin: 6px; + padding: 18px; + width: 24px; + height: 24px; + border-radius: 999px; + transition-duration: 100ms; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #000000; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; } + .page-navigation-arrow > StIcon { + color: #ffffff; } + .page-navigation-arrow:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 7%), #ffffff, 87%); } + .page-navigation-arrow:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 9%), #ffffff, 87%); } + .page-navigation-arrow:active:hover { + background-color: st-lighten(st-lighten(#000000, 9%), 7%); } + .page-navigation-arrow:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#000000, 9%), #ffffff, 87%), 5%); } + +/* Workspace pager */ +.workspace-thumbnails { + visible-width: 32px; + spacing: 6px; + padding: 6px; } + .workspace-thumbnails .workspace-thumbnail { + color: #ffffff; + background-color: #262626; + border-radius: 4px; + border: 1px solid transparent; + border-color: rgba(255, 255, 255, 0.4); } + .workspace-thumbnails .placeholder { + background-image: url("resource:///org/gnome/shell/theme/workspace-placeholder.svg"); + background-size: contain; + width: 18px; } + +.workspace-thumbnail-indicator { + border: 3px solid -st-accent-color; + border-radius: 8px; } + +.ripple-pointer-location { + width: 50px; + height: 50px; + border-radius: 25px; + background-color: st-lighten(st-transparentize(-st-accent-color, 0.7), 30%); + box-shadow: 0 0 2px 2px st-lighten(-st-accent-color, 20%); } + +.pie-timer { + width: 60px; + height: 60px; + -pie-border-width: 3px; + -pie-border-color: -st-accent-color; + -pie-background-color: st-lighten(st-transparentize(-st-accent-color, 0.7), 40%); } + +.magnifier-zoom-region { + border: 2px solid -st-accent-color; } + .magnifier-zoom-region.full-screen { + border-width: 0; } + +.select-area-rubberband { + background-color: st-transparentize(-st-accent-color, 0.7); + border: 1px solid -st-accent-color; } + +.user-icon { + background-size: contain; + border-radius: 999px; + icon-size: 64px; + background-color: rgba(255, 255, 255, 0.05); + color: #ffffff; } + .user-icon StIcon { + padding: 12px; } + .user-icon.user-avatar { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); } + +.lightbox { + background-color: black; } + +.flashspot { + background-color: white; } + +.hidden { + color: transparent; } + +.caps-lock-warning-label { + text-align: center; + padding-bottom: 8px; + color: #cd9309; } + +/* Workspace animation */ +.workspace-animation { + background-color: #0d0d0d; } + +/* Tiled window previews */ +.tile-preview { + background-color: st-transparentize(-st-accent-color, 0.5); + border: 1px solid -st-accent-color; } + +/* On-screen Keyboard */ +#keyboard { + background-color: #000000; + box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.2); } + #keyboard .page-indicator { + padding: 6px; } + #keyboard .page-indicator .page-indicator-icon { + width: 8px; + height: 8px; } + +.key-container { + padding: 4px; + spacing: 4px; } + +.keyboard-key { + font-size: 1.455em; + font-weight: bold; + border-radius: 0.546em; + box-shadow: 0 1px 0 0 transparent; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #4d4d4d, 9%), #ffffff, 87%); } + .keyboard-key:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(#ffffff, #1a1a1a, 9%), #ffffff, 87%), 5%); } + .keyboard-key:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 4%), #ffffff, 87%), 5%); } + .keyboard-key:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 4%), #ffffff, 87%); } + .keyboard-key:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%), #ffffff, 87%); } + .keyboard-key:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%), 4%); } + .keyboard-key:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%), #ffffff, 87%), 5%); } + .keyboard-key:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%), #ffffff, 87%); } + .keyboard-key:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%), 4%); } + .keyboard-key:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%), 9%); } + .keyboard-key.default-key { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #333333, 9%), #ffffff, 87%); + border: none; } + .keyboard-key.default-key:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #333333, 9%), 4%), #ffffff, 87%); } + .keyboard-key.default-key:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #333333, 9%), 9%), #ffffff, 87%); } + .keyboard-key.default-key:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #333333, 9%), 9%), 4%); } + .keyboard-key.default-key:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #333333, 9%), 9%), #ffffff, 87%), 5%); } + .keyboard-key.default-key:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #333333, 9%), 8%), #ffffff, 87%); } + .keyboard-key.default-key:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #333333, 9%), 8%), 4%); } + .keyboard-key.default-key:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #333333, 9%), 8%), 9%); } + .keyboard-key.default-key:latched { + background-color: -st-accent-color; } + .keyboard-key StIcon { + icon-size: 1.6365em; } + +.keyboard-subkeys-boxpointer { + -arrow-border-radius: 22px; + -arrow-background-color: #000000; + -arrow-border-width: 1px; + -arrow-border-color: #171717; + -arrow-base: 20px; + -arrow-rise: 10px; + -boxpointer-gap: 4px; + border-radius: 22px; + box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.1); } + .keyboard-subkeys-boxpointer .key-container { + padding: 12px; + spacing: 8px; } + +.emoji-page .keyboard-key { + background-color: transparent; + border: none; + color: initial; } + +.emoji-panel .keyboard-key:latched { + border-color: st-lighten(-st-accent-color, 5%); + background-color: -st-accent-color; } + +.word-suggestions { + spacing: 12px; + min-height: 17pt; + padding: 12px; + color: #ffffff; } + .word-suggestions StButton { + margin: 0 3px; + min-width: 32px; + border-radius: 4px; + padding: 6px 18px; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .word-suggestions StButton:insensitive { + background-color: transparent !important; } + .word-suggestions StButton:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(#ffffff, #1a1a1a, 9%), #ffffff, 87%), 5%); } + .word-suggestions StButton:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #1a1a1a, 9%), 4%), #ffffff, 87%), 5%); } + .word-suggestions StButton:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 4%), #ffffff, 87%); } + .word-suggestions StButton:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%), #ffffff, 87%); } + .word-suggestions StButton:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%), 4%); } + .word-suggestions StButton:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 9%), #ffffff, 87%), 5%); } + .word-suggestions StButton:checked { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%), #ffffff, 87%); } + .word-suggestions StButton:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%), 4%); } + .word-suggestions StButton:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #4d4d4d, 9%), 8%), 9%); } + +/* Looking Glass */ +.lg-dialog StEntry { + min-height: 1.5em; } + +.lg-dialog .shell-link { + color: st-lighten(-st-accent-color, 20%); } + .lg-dialog .shell-link:hover { + color: st-lighten(st-lighten(-st-accent-color, 20%), 10%); } + .lg-dialog .shell-link:active { + color: st-darken(st-lighten(-st-accent-color, 20%), 10%); } + +.lg-dialog .actor-link { + color: st-darken(#ffffff, 20%); } + .lg-dialog .actor-link:hover { + color: #ffffff; } + .lg-dialog .actor-link:active { + color: st-lighten(#ffffff, 20%); } + .lg-dialog .actor-link StIcon { + icon-size: 12px; } + +.lg-completions-text { + font-style: italic; } + +#LookingGlassDialog { + background-color: rgba(0, 0, 0, 0.98); + color: #ffffff; + border-radius: 16px; + margin-top: 4px; + border: 2px solid transparent; + padding: 6px; + spacing: 6px; + box-shadow: 0 2px 4px 0 transparent; + border-color: rgba(255, 255, 255, 0.4); + background-color: #000000; + box-shadow: none; } + #LookingGlassDialog > #Toolbar { + border: none; + padding: 6px; + border-radius: 0; + background-color: transparent; + spacing: 6px; } + #LookingGlassDialog > #Toolbar .lg-toolbar-button { + padding: 6px 12px; } + #LookingGlassDialog > #Toolbar .lg-toolbar-button > StIcon { + icon-size: 16px; } + #LookingGlassDialog .labels { + spacing: 6px; } + #LookingGlassDialog .notebook-tab { + background-color: transparent; + -natural-hpadding: 12px; + -minimum-hpadding: 12px; + padding: 6px 12px; } + #LookingGlassDialog .notebook-tab:selected { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%); } + #LookingGlassDialog .notebook-tab:selected:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), 4%); } + #LookingGlassDialog .notebook-tab:selected:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%), 5%); } + +#LookingGlassPropertyInspector { + background-color: #000000; + color: #ffffff; + border-radius: 16px; + border: 1px solid rgba(255, 255, 255, 0.2); + padding: 12px; + border-color: rgba(255, 255, 255, 0.4); } + #LookingGlassPropertyInspector .lg-obj-inspector-title { + spacing: 4px; } + #LookingGlassPropertyInspector .lg-obj-inspector-close-button, + #LookingGlassPropertyInspector .lg-obj-inspector-button { + padding: 6px 12px; } + #LookingGlassPropertyInspector .lg-obj-inspector-close-button { + margin: 4px; + padding: 6px; + border-radius: 999px; } + #LookingGlassPropertyInspector .lg-obj-inspector-close-button > StIcon { + icon-size: 16px; } + +#LookingGlassEvaluator { + padding: 6px; } + #LookingGlassEvaluator .evaluator-results { + spacing: 6px; } + +#LookingGlassWindows { + padding: 6px; + spacing: 6px; } + #LookingGlassWindows .lg-window { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #000000, 9%), #ffffff, 87%); + margin: 0; + padding: 12px; } + +#LookingGlassExtensions .lg-extensions-list { + padding: 6px; + spacing: 6px; } + +#LookingGlassExtensions .lg-extension { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #000000, 9%), #ffffff, 87%); + margin: 0; + spacing: 4px; + padding: 12px; } + #LookingGlassExtensions .lg-extension .lg-extension-name { + color: #ffffff !important; } + #LookingGlassExtensions .lg-extension .lg-extension-meta { + spacing: 12px; } + +#LookingGlassExtensions .lg-extensions-none { + color: rgba(255, 255, 255, 0.5); } + +#LookingGlassActors { + padding: 6px; + spacing: 4px; } + +#LookingGlassDebugFlags .lg-debug-flags-header { + padding: 6px; + padding-top: 12px; } + +#LookingGlassDebugFlags .lg-debug-flag-button { + padding: 9px 12px; + margin-bottom: 6px; } + #LookingGlassDebugFlags .lg-debug-flag-button StLabel { + font-weight: normal !important; } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch { + background: rgba(255, 255, 255, 0.3); } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch:hover { + background: rgba(255, 255, 255, 0.4); } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch:checked { + background: -st-accent-color; + color: -st-accent-fg-color; } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch:checked:hover { + background-color: st-lighten(-st-accent-color, 5%); + color: st-lighten(-st-accent-fg-color, 5%); } + +.login-dialog, +.unlock-dialog { + color: #ffffff; } + .login-dialog .caps-lock-warning-label, + .login-dialog .login-dialog-message-warning, + .unlock-dialog .caps-lock-warning-label, + .unlock-dialog .login-dialog-message-warning { + color: #ffffff; } + .login-dialog .login-dialog-prompt-layout, + .unlock-dialog .login-dialog-prompt-layout { + width: 25em; + spacing: 9px; } + +.login-dialog-bottom-button-group { + padding: 32px; + spacing: 16px; } + +.login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button { + padding: 1.091em; } + +.login-dialog-button.cancel-button { + padding: 9px; } + +.login-dialog-button-box { + spacing: 12px; } + +.conflicting-session-dialog-content { + spacing: 20px; } + .conflicting-session-dialog-content .conflicting-session-dialog-title { + text-align: center; + margin-bottom: 5px; } + .conflicting-session-dialog-content .conflicting-session-dialog-desc { + text-align: center; } + .conflicting-session-dialog-content .conflicting-session-dialog-desc-warning { + text-align: center; + color: #cd9309; + background-color: rgba(205, 147, 9, 0.1); + padding: 9px; + border-radius: 8px; + margin: 4px 0; } + +.login-dialog-logo-bin { + margin: 3em 0; } + +.login-dialog-banner-view { + max-width: 25em; } + .login-dialog-banner-view .login-dialog-banner { + color: #e6e6e6; } + +.login-dialog-message { + text-align: center; } + +.login-dialog-message-hint, .login-dialog-message { + color: #e6e6e6; + min-height: 2.75em; } + +.login-dialog-user-selection-box { + padding-top: 4em; + padding-bottom: 8em; } + +.login-dialog-not-listed-label { + padding: 6px; } + +.login-dialog-not-listed-button { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: #000000; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + box-shadow: none; + border: none; + padding: 0 6px; + margin: 6px; } + .login-dialog-not-listed-button:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), rgba(0, 0, 0, 0.25), 5%); } + .login-dialog-not-listed-button:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#000000, 7%), #ffffff, 87%), 5%); } + .login-dialog-not-listed-button:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 7%), #ffffff, 87%); } + .login-dialog-not-listed-button:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(#000000, 9%), #ffffff, 87%); } + .login-dialog-not-listed-button:active:hover { + background-color: st-lighten(st-lighten(#000000, 9%), 7%); } + .login-dialog-not-listed-button:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#000000, 9%), #ffffff, 87%), 5%); } + +.login-dialog-auth-list-view { + -st-vfade-offset: 3em; } + +.login-dialog-auth-list { + spacing: 6px; + margin-left: 2em; } + +.login-dialog-auth-list-title { + margin-left: 2em; + padding-bottom: 6px; } + +.login-dialog .login-dialog-auth-list-item { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #000000, 9%), #ffffff, 87%); + border-radius: 9.6px; + padding: 7.2px; } + .login-dialog .login-dialog-auth-list-item:selected, .login-dialog .login-dialog-auth-list-item:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(#ffffff, #000000, 9%), #ffffff, 87%), 5%); } + .login-dialog .login-dialog-auth-list-item:selected:hover, .login-dialog .login-dialog-auth-list-item:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 4%), #ffffff, 87%), 5%); } + .login-dialog .login-dialog-auth-list-item:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 4%), #ffffff, 87%); } + .login-dialog .login-dialog-auth-list-item:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%); } + .login-dialog .login-dialog-auth-list-item:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), 4%); } + .login-dialog .login-dialog-auth-list-item:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%), 5%); } + +.unlock-dialog .login-dialog-auth-list-item { + border-radius: 9.6px; + padding: 7.2px; } + +.login-dialog-auth-list-label:ltr { + padding-left: 15px; + text-align: left; } + +.login-dialog-auth-list-label:rtl { + padding-right: 15px; + text-align: right; } + +.login-dialog-user-list-view { + width: 25em; + -st-vfade-offset: 3em; } + .login-dialog-user-list-view .login-dialog-user-list { + margin: 0 8px; + spacing: 12px; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-mix(#ffffff, #000000, 9%), #ffffff, 87%); + border-radius: 16px; + padding: 9px; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:selected, .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:focus { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(st-mix(-st-accent-color, #ffffff, 60%), 0.1) !important; + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-mix(#ffffff, #000000, 9%), #ffffff, 87%), 5%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:selected:hover, .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:focus:hover { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 4%), #ffffff, 87%), 5%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:hover { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 4%), #ffffff, 87%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active { + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); + color: #ffffff; + background-color: st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), 4%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active:focus { + background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%), 5%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .user-icon { + border: 2px solid transparent; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .login-dialog-timed-login-indicator { + height: 2px; + margin-top: 6px; + background-color: rgba(255, 255, 255, 0.7); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:logged-in .user-icon { + border-color: -st-accent-color; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:logged-in .user-icon StIcon { + background-color: st-transparentize(-st-accent-color, 0.7); } + +.unlock-dialog { + background-color: transparent; } + +.screen-shield-background { + background: black; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.6); } + +#lockDialogGroup { + background-color: #000000; } + +.unlock-dialog-clock { + color: #ffffff; + spacing: 2em; } + .unlock-dialog-clock .unlock-dialog-clock-time { + font-size: 6.546em; + font-weight: 800; } + .unlock-dialog-clock .unlock-dialog-clock-date { + font-weight: 400; } + .unlock-dialog-clock .unlock-dialog-clock-hint { + margin-top: 2em; + padding: 6px 18px; + border-radius: 16px; + font-weight: bold; } + +.parental-controls-shield { + spacing: 0.75em; } + .parental-controls-shield .parental-controls-shield-title { + margin-top: 0.6em; + text-align: center; } + .parental-controls-shield .parental-controls-shield-description { + text-align: center; } + .parental-controls-shield .parental-controls-shield-button { + margin-top: 0.85em; + padding: 16px 44px; + color: #ffffff; + background-color: rgba(255, 255, 255, 0.1); + border-radius: 999px; } + +#unlockDialogNotifications > .vhandle, #unlockDialogNotifications > .hhandle { + background-color: rgba(26, 26, 26, 0.3); } + #unlockDialogNotifications > .vhandle:hover, #unlockDialogNotifications > .vhandle:focus, #unlockDialogNotifications > .hhandle:hover, #unlockDialogNotifications > .hhandle:focus { + background-color: rgba(26, 26, 26, 0.5); } + #unlockDialogNotifications > .vhandle:active, #unlockDialogNotifications > .hhandle:active { + background-color: st-transparentize(-st-accent-color, 0.5); } + +.unlock-dialog-notifications-container { + margin: 12px; + spacing: 6px; + width: 25em; + background-color: transparent; } + .unlock-dialog-notifications-container .summary-notification-stack-scrollview { + padding-top: 0; + padding-bottom: 0; } + .unlock-dialog-notifications-container .message, + .unlock-dialog-notifications-container .unlock-dialog-notification-source { + padding: 12px 16px; + border: none; + background-color: rgba(255, 255, 255, 0.1); + color: #ffffff; + border-radius: 16px; } + .unlock-dialog-notifications-container .message.critical, + .unlock-dialog-notifications-container .unlock-dialog-notification-source.critical { + background-color: rgba(255, 255, 255, 0.2); } + .unlock-dialog-notifications-container .message:active, + .unlock-dialog-notifications-container .unlock-dialog-notification-source:active { + background-color: rgba(255, 255, 255, 0.1); } + .unlock-dialog-notifications-container .message StButton, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton { + background-color: transparent; } + .unlock-dialog-notifications-container .message StButton:insensitive, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:insensitive { + background-color: transparent; + opacity: 0.5; } + .unlock-dialog-notifications-container .message .message-header, + .unlock-dialog-notifications-container .unlock-dialog-notification-source .message-header { + color: #ffffff; } + +.unlock-dialog-notification-icon { + icon-size: 32px; } + +.unlock-dialog-notification-label { + padding-left: 12px; + padding-right: 0; } + .unlock-dialog-notification-label:rtl { + padding-right: 12px; + padding-left: 0; } + +.unlock-dialog-notification-count-text { + font-weight: bold; + padding: 0 12px; + color: #ffffff; + background-color: rgba(255, 255, 255, 0.1); + border-radius: 999px; } + +.login-dialog .user-widget .user-widget-label, +.unlock-dialog .user-widget .user-widget-label { + color: #ffffff; } + +.login-dialog .user-widget .user-icon, +.unlock-dialog .user-widget .user-icon { + background-color: rgba(255, 255, 255, 0.13); + color: #ffffff; + background-color: rgba(255, 255, 255, 0.3); + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); } + +.login-dialog .user-widget.horizontal, +.unlock-dialog .user-widget.horizontal { + spacing: 18px; } + +.login-dialog .user-widget.vertical, +.unlock-dialog .user-widget.vertical { + spacing: 24px; } + .login-dialog .user-widget.vertical .user-widget-label, + .unlock-dialog .user-widget.vertical .user-widget-label { + font-weight: 400; + font-size: 1.818em; + text-align: center; + margin-bottom: .75em; } + .login-dialog .user-widget.vertical .user-icon, + .unlock-dialog .user-widget.vertical .user-icon { + icon-size: 160px; } + .login-dialog .user-widget.vertical .user-icon StIcon, + .unlock-dialog .user-widget.vertical .user-icon StIcon { + padding: 30px; } diff --cc data/theme/gnome-shell-light.css index a1097a4da,000000000..30f4cb322 mode 100644,000000..100644 --- a/data/theme/gnome-shell-light.css +++ b/data/theme/gnome-shell-light.css @@@ -1,3325 -1,0 +1,3325 @@@ +/* This stylesheet is generated, DO NOT EDIT */ +/* Copyright 2009, 2015 Red Hat, Inc. + * + * Portions adapted from Mx's data/style/default.css + * Copyright 2009 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU Lesser General Public License, + * version 2.1, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for + * more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + */ +/* Global Values */ +stage { + font-size: 1em; + color: #222226; } + +/* Common Stylings */ +#dash .dash-item-container .show-apps, +#dash .dash-item-container .overview-tile, +#dash .dash-item-container .grid-search-result { + background: none; + box-shadow: none; + border: none; + border-radius: 0; + padding: 0; + margin: 0; } + +.app-folder-dialog .overview-tile, .app-folder-dialog .grid-search-result, .app-folder, .overview-tile, .grid-search-result, #dash .dash-item-container .show-apps .overview-icon, +#dash .dash-item-container .overview-tile .overview-icon, +#dash .dash-item-container .grid-search-result .overview-icon, .list-search-result, .search-provider-icon, .switcher-list .item-box, .audio-device-selection-dialog .audio-selection-box .audio-selection-device { + border-radius: 16px; + padding: 6px; + spacing: 6px; + text-align: center; + transition-duration: 100ms; } + +.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item, .login-dialog .login-dialog-auth-list-item, .login-dialog-not-listed-button, .unlock-dialog-notifications-container .message StButton, +.unlock-dialog-notifications-container .unlock-dialog-notification-source StButton, .parental-controls-shield .parental-controls-shield-button, .unlock-dialog .button, +.unlock-dialog .icon-button, +.unlock-dialog .message-notification-group .message-collapse-button, +.message-notification-group .unlock-dialog .message-collapse-button, +.unlock-dialog .message .message-header .message-expand-button, +.message .message-header .unlock-dialog .message-expand-button, +.unlock-dialog .message .message-header .message-close-button, +.message .message-header .unlock-dialog .message-close-button, +.unlock-dialog .screenshot-ui-show-pointer-button, .unlock-dialog .login-dialog-auth-list-item, #LookingGlassDialog .notebook-tab, .screenshot-ui-show-pointer-button, .screenshot-ui-type-button, #LookingGlassDebugFlags .lg-debug-flag-button, #LookingGlassPropertyInspector .lg-obj-inspector-close-button, +#LookingGlassPropertyInspector .lg-obj-inspector-button, #LookingGlassDialog > #Toolbar .lg-toolbar-button, .icon-button, .login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button, .message-notification-group .message-collapse-button, .calendar .calendar-month-header .pager-button, .button { + border-radius: 8px; + padding: 3px 24px; + font-weight: bold; + transition: border-width 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + +.icon-button, .login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button, .screenshot-ui-show-pointer-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button, .message-notification-group .message-collapse-button, .calendar .calendar-month-header .pager-button, .button { + color: #222226; + background-color: st-mix(#222226, #fafafb, 12%); } + .icon-button:focus, .login-dialog-button.a11y-button:focus, .login-dialog-button.cancel-button:focus, .login-dialog-button.switch-user-button:focus, .login-dialog-button.login-dialog-session-list-button:focus, .screenshot-ui-show-pointer-button:focus, .message .message-header .message-expand-button:focus, + .message .message-header .message-close-button:focus, .message-notification-group .message-collapse-button:focus, .calendar .calendar-month-header .pager-button:focus, .button:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(#222226, #fafafb, 12%), 5%); } + .icon-button:focus:hover, .login-dialog-button.a11y-button:focus:hover, .login-dialog-button.cancel-button:focus:hover, .login-dialog-button.switch-user-button:focus:hover, .login-dialog-button.login-dialog-session-list-button:focus:hover, .screenshot-ui-show-pointer-button:focus:hover, .message .message-header .message-expand-button:focus:hover, + .message .message-header .message-close-button:focus:hover, .message-notification-group .message-collapse-button:focus:hover, .calendar .calendar-month-header .pager-button:focus:hover, .button:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#222226, #fafafb, 12%), 4%), 5%); } + .icon-button:hover, .login-dialog-button.a11y-button:hover, .login-dialog-button.cancel-button:hover, .login-dialog-button.switch-user-button:hover, .login-dialog-button.login-dialog-session-list-button:hover, .screenshot-ui-show-pointer-button:hover, .message .message-header .message-expand-button:hover, + .message .message-header .message-close-button:hover, .message-notification-group .message-collapse-button:hover, .calendar .calendar-month-header .pager-button:hover, .button:hover { + color: #222226; + background-color: st-darken(st-mix(#222226, #fafafb, 12%), 4%); } + .icon-button:insensitive, .login-dialog-button.a11y-button:insensitive, .login-dialog-button.cancel-button:insensitive, .login-dialog-button.switch-user-button:insensitive, .login-dialog-button.login-dialog-session-list-button:insensitive, .screenshot-ui-show-pointer-button:insensitive, .message .message-header .message-expand-button:insensitive, + .message .message-header .message-close-button:insensitive, .message-notification-group .message-collapse-button:insensitive, .calendar .calendar-month-header .pager-button:insensitive, .button:insensitive { + color: st-transparentize(#222226, 0.6); + background-color: st-lighten(st-mix(#222226, #fafafb, 12%), 3%); } + .icon-button:selected, .login-dialog-button.a11y-button:selected, .login-dialog-button.cancel-button:selected, .login-dialog-button.switch-user-button:selected, .login-dialog-button.login-dialog-session-list-button:selected, .screenshot-ui-show-pointer-button:selected, .message .message-header .message-expand-button:selected, + .message .message-header .message-close-button:selected, .message-notification-group .message-collapse-button:selected, .calendar .calendar-month-header .pager-button:selected, .button:selected, .icon-button:active, .login-dialog-button.a11y-button:active, .login-dialog-button.cancel-button:active, .login-dialog-button.switch-user-button:active, .login-dialog-button.login-dialog-session-list-button:active, .screenshot-ui-show-pointer-button:active, .message .message-header .message-expand-button:active, + .message .message-header .message-close-button:active, .message-notification-group .message-collapse-button:active, .calendar .calendar-month-header .pager-button:active, .button:active { + color: #222226; + background-color: st-darken(st-mix(#222226, #fafafb, 12%), 9%); } + .icon-button:selected:hover, .login-dialog-button.a11y-button:selected:hover, .login-dialog-button.cancel-button:selected:hover, .login-dialog-button.switch-user-button:selected:hover, .login-dialog-button.login-dialog-session-list-button:selected:hover, .screenshot-ui-show-pointer-button:selected:hover, .message .message-header .message-expand-button:selected:hover, + .message .message-header .message-close-button:selected:hover, .message-notification-group .message-collapse-button:selected:hover, .calendar .calendar-month-header .pager-button:selected:hover, .button:selected:hover, .icon-button:active:hover, .login-dialog-button.a11y-button:active:hover, .login-dialog-button.cancel-button:active:hover, .login-dialog-button.switch-user-button:active:hover, .login-dialog-button.login-dialog-session-list-button:active:hover, .screenshot-ui-show-pointer-button:active:hover, .message .message-header .message-expand-button:active:hover, + .message .message-header .message-close-button:active:hover, .message-notification-group .message-collapse-button:active:hover, .calendar .calendar-month-header .pager-button:active:hover, .button:active:hover { + background-color: st-darken(st-darken(st-mix(#222226, #fafafb, 12%), 9%), 4%); } + .icon-button:selected:focus, .login-dialog-button.a11y-button:selected:focus, .login-dialog-button.cancel-button:selected:focus, .login-dialog-button.switch-user-button:selected:focus, .login-dialog-button.login-dialog-session-list-button:selected:focus, .screenshot-ui-show-pointer-button:selected:focus, .message .message-header .message-expand-button:selected:focus, + .message .message-header .message-close-button:selected:focus, .message-notification-group .message-collapse-button:selected:focus, .calendar .calendar-month-header .pager-button:selected:focus, .button:selected:focus, .icon-button:active:focus, .login-dialog-button.a11y-button:active:focus, .login-dialog-button.cancel-button:active:focus, .login-dialog-button.switch-user-button:active:focus, .login-dialog-button.login-dialog-session-list-button:active:focus, .screenshot-ui-show-pointer-button:active:focus, .message .message-header .message-expand-button:active:focus, + .message .message-header .message-close-button:active:focus, .message-notification-group .message-collapse-button:active:focus, .calendar .calendar-month-header .pager-button:active:focus, .button:active:focus { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#222226, #fafafb, 12%), 9%), 5%); } + .icon-button:checked, .login-dialog-button.a11y-button:checked, .login-dialog-button.cancel-button:checked, .login-dialog-button.switch-user-button:checked, .login-dialog-button.login-dialog-session-list-button:checked, .screenshot-ui-show-pointer-button:checked, .message .message-header .message-expand-button:checked, + .message .message-header .message-close-button:checked, .message-notification-group .message-collapse-button:checked, .calendar .calendar-month-header .pager-button:checked, .button:checked { + color: #222226; + background-color: st-darken(st-mix(#222226, #fafafb, 12%), 8%); } + .icon-button:checked:hover, .login-dialog-button.a11y-button:checked:hover, .login-dialog-button.cancel-button:checked:hover, .login-dialog-button.switch-user-button:checked:hover, .login-dialog-button.login-dialog-session-list-button:checked:hover, .screenshot-ui-show-pointer-button:checked:hover, .message .message-header .message-expand-button:checked:hover, + .message .message-header .message-close-button:checked:hover, .message-notification-group .message-collapse-button:checked:hover, .calendar .calendar-month-header .pager-button:checked:hover, .button:checked:hover { + background-color: st-darken(st-darken(st-mix(#222226, #fafafb, 12%), 8%), 4%); } + .icon-button:checked:active, .login-dialog-button.a11y-button:checked:active, .login-dialog-button.cancel-button:checked:active, .login-dialog-button.switch-user-button:checked:active, .login-dialog-button.login-dialog-session-list-button:checked:active, .screenshot-ui-show-pointer-button:checked:active, .message .message-header .message-expand-button:checked:active, + .message .message-header .message-close-button:checked:active, .message-notification-group .message-collapse-button:checked:active, .calendar .calendar-month-header .pager-button:checked:active, .button:checked:active { + background-color: st-darken(st-darken(st-mix(#222226, #fafafb, 12%), 8%), 9%); } + +.calendar .calendar-day-heading, .calendar .calendar-day, .calendar .calendar-month-header .calendar-month-label, .icon-button.flat, .flat.login-dialog-button.a11y-button, .flat.login-dialog-button.cancel-button, .flat.login-dialog-button.switch-user-button, .flat.login-dialog-button.login-dialog-session-list-button, .flat.screenshot-ui-show-pointer-button, .message .message-header .flat.message-expand-button, +.message .message-header .flat.message-close-button, .message-notification-group .flat.message-collapse-button, .calendar .calendar-month-header .pager-button, .button.flat { + color: #222226; + background-color: #fafafb; } + .calendar .calendar-day-heading:focus, .calendar .calendar-day:focus, .calendar .calendar-month-header .calendar-month-label:focus, .icon-button.flat:focus, .flat.login-dialog-button.a11y-button:focus, .flat.login-dialog-button.cancel-button:focus, .flat.login-dialog-button.switch-user-button:focus, .flat.login-dialog-button.login-dialog-session-list-button:focus, .flat.screenshot-ui-show-pointer-button:focus, .message .message-header .flat.message-expand-button:focus, + .message .message-header .flat.message-close-button:focus, .message-notification-group .flat.message-collapse-button:focus, .calendar .calendar-month-header .pager-button:focus, .button.flat:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(250, 250, 251, 0.25), 5%); } + .calendar .calendar-day-heading:focus:hover, .calendar .calendar-day:focus:hover, .calendar .calendar-month-header .calendar-month-label:focus:hover, .icon-button.flat:focus:hover, .flat.login-dialog-button.a11y-button:focus:hover, .flat.login-dialog-button.cancel-button:focus:hover, .flat.login-dialog-button.switch-user-button:focus:hover, .flat.login-dialog-button.login-dialog-session-list-button:focus:hover, .flat.screenshot-ui-show-pointer-button:focus:hover, .message .message-header .flat.message-expand-button:focus:hover, + .message .message-header .flat.message-close-button:focus:hover, .message-notification-group .flat.message-collapse-button:focus:hover, .calendar .calendar-month-header .pager-button:focus:hover, .button.flat:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(#fafafb, 7%), 5%); } + .calendar .calendar-day-heading:hover, .calendar .calendar-day:hover, .calendar .calendar-month-header .calendar-month-label:hover, .icon-button.flat:hover, .flat.login-dialog-button.a11y-button:hover, .flat.login-dialog-button.cancel-button:hover, .flat.login-dialog-button.switch-user-button:hover, .flat.login-dialog-button.login-dialog-session-list-button:hover, .flat.screenshot-ui-show-pointer-button:hover, .message .message-header .flat.message-expand-button:hover, + .message .message-header .flat.message-close-button:hover, .message-notification-group .flat.message-collapse-button:hover, .calendar .calendar-month-header .pager-button:hover, .button.flat:hover { + color: #222226; + background-color: st-darken(#fafafb, 7%); } + .calendar .calendar-day-heading:insensitive, .calendar .calendar-day:insensitive, .calendar .calendar-month-header .calendar-month-label:insensitive, .icon-button.flat:insensitive, .flat.login-dialog-button.a11y-button:insensitive, .flat.login-dialog-button.cancel-button:insensitive, .flat.login-dialog-button.switch-user-button:insensitive, .flat.login-dialog-button.login-dialog-session-list-button:insensitive, .flat.screenshot-ui-show-pointer-button:insensitive, .message .message-header .flat.message-expand-button:insensitive, + .message .message-header .flat.message-close-button:insensitive, .message-notification-group .flat.message-collapse-button:insensitive, .calendar .calendar-month-header .pager-button:insensitive, .button.flat:insensitive { + color: st-transparentize(#222226, 0.6); + background-color: #fafafb; } + .calendar .calendar-day-heading:selected, .calendar .calendar-day:selected, .calendar .calendar-month-header .calendar-month-label:selected, .icon-button.flat:selected, .flat.login-dialog-button.a11y-button:selected, .flat.login-dialog-button.cancel-button:selected, .flat.login-dialog-button.switch-user-button:selected, .flat.login-dialog-button.login-dialog-session-list-button:selected, .flat.screenshot-ui-show-pointer-button:selected, .message .message-header .flat.message-expand-button:selected, + .message .message-header .flat.message-close-button:selected, .message-notification-group .flat.message-collapse-button:selected, .calendar .calendar-month-header .pager-button:selected, .button.flat:selected, .calendar .calendar-day-heading:active, .calendar .calendar-day:active, .calendar .calendar-month-header .calendar-month-label:active, .icon-button.flat:active, .flat.login-dialog-button.a11y-button:active, .flat.login-dialog-button.cancel-button:active, .flat.login-dialog-button.switch-user-button:active, .flat.login-dialog-button.login-dialog-session-list-button:active, .flat.screenshot-ui-show-pointer-button:active, .message .message-header .flat.message-expand-button:active, + .message .message-header .flat.message-close-button:active, .message-notification-group .flat.message-collapse-button:active, .calendar .calendar-month-header .pager-button:active, .button.flat:active { + color: #222226; + background-color: st-darken(#fafafb, 9%); } + .calendar .calendar-day-heading:selected:hover, .calendar .calendar-day:selected:hover, .calendar .calendar-month-header .calendar-month-label:selected:hover, .icon-button.flat:selected:hover, .flat.login-dialog-button.a11y-button:selected:hover, .flat.login-dialog-button.cancel-button:selected:hover, .flat.login-dialog-button.switch-user-button:selected:hover, .flat.login-dialog-button.login-dialog-session-list-button:selected:hover, .flat.screenshot-ui-show-pointer-button:selected:hover, .message .message-header .flat.message-expand-button:selected:hover, + .message .message-header .flat.message-close-button:selected:hover, .message-notification-group .flat.message-collapse-button:selected:hover, .calendar .calendar-month-header .pager-button:selected:hover, .button.flat:selected:hover, .calendar .calendar-day-heading:active:hover, .calendar .calendar-day:active:hover, .calendar .calendar-month-header .calendar-month-label:active:hover, .icon-button.flat:active:hover, .flat.login-dialog-button.a11y-button:active:hover, .flat.login-dialog-button.cancel-button:active:hover, .flat.login-dialog-button.switch-user-button:active:hover, .flat.login-dialog-button.login-dialog-session-list-button:active:hover, .flat.screenshot-ui-show-pointer-button:active:hover, .message .message-header .flat.message-expand-button:active:hover, + .message .message-header .flat.message-close-button:active:hover, .message-notification-group .flat.message-collapse-button:active:hover, .calendar .calendar-month-header .pager-button:active:hover, .button.flat:active:hover { + background-color: st-darken(st-darken(#fafafb, 9%), 7%); } + .calendar .calendar-day-heading:selected:focus, .calendar .calendar-day:selected:focus, .calendar .calendar-month-header .calendar-month-label:selected:focus, .icon-button.flat:selected:focus, .flat.login-dialog-button.a11y-button:selected:focus, .flat.login-dialog-button.cancel-button:selected:focus, .flat.login-dialog-button.switch-user-button:selected:focus, .flat.login-dialog-button.login-dialog-session-list-button:selected:focus, .flat.screenshot-ui-show-pointer-button:selected:focus, .message .message-header .flat.message-expand-button:selected:focus, + .message .message-header .flat.message-close-button:selected:focus, .message-notification-group .flat.message-collapse-button:selected:focus, .calendar .calendar-month-header .pager-button:selected:focus, .button.flat:selected:focus, .calendar .calendar-day-heading:active:focus, .calendar .calendar-day:active:focus, .calendar .calendar-month-header .calendar-month-label:active:focus, .icon-button.flat:active:focus, .flat.login-dialog-button.a11y-button:active:focus, .flat.login-dialog-button.cancel-button:active:focus, .flat.login-dialog-button.switch-user-button:active:focus, .flat.login-dialog-button.login-dialog-session-list-button:active:focus, .flat.screenshot-ui-show-pointer-button:active:focus, .message .message-header .flat.message-expand-button:active:focus, + .message .message-header .flat.message-close-button:active:focus, .message-notification-group .flat.message-collapse-button:active:focus, .calendar .calendar-month-header .pager-button:active:focus, .button.flat:active:focus { + background-color: st-mix(-st-accent-color, st-darken(#fafafb, 9%), 5%); } + .calendar .calendar-day-heading:checked, .calendar .calendar-day:checked, .calendar .calendar-month-header .calendar-month-label:checked, .icon-button.flat:checked, .flat.login-dialog-button.a11y-button:checked, .flat.login-dialog-button.cancel-button:checked, .flat.login-dialog-button.switch-user-button:checked, .flat.login-dialog-button.login-dialog-session-list-button:checked, .flat.screenshot-ui-show-pointer-button:checked, .message .message-header .flat.message-expand-button:checked, + .message .message-header .flat.message-close-button:checked, .message-notification-group .flat.message-collapse-button:checked, .calendar .calendar-month-header .pager-button:checked, .button.flat:checked { + color: #222226; + background-color: st-darken(#fafafb, 8%); } + .calendar .calendar-day-heading:checked:hover, .calendar .calendar-day:checked:hover, .calendar .calendar-month-header .calendar-month-label:checked:hover, .icon-button.flat:checked:hover, .flat.login-dialog-button.a11y-button:checked:hover, .flat.login-dialog-button.cancel-button:checked:hover, .flat.login-dialog-button.switch-user-button:checked:hover, .flat.login-dialog-button.login-dialog-session-list-button:checked:hover, .flat.screenshot-ui-show-pointer-button:checked:hover, .message .message-header .flat.message-expand-button:checked:hover, + .message .message-header .flat.message-close-button:checked:hover, .message-notification-group .flat.message-collapse-button:checked:hover, .calendar .calendar-month-header .pager-button:checked:hover, .button.flat:checked:hover { + background-color: st-darken(st-darken(#fafafb, 8%), 7%); } + .calendar .calendar-day-heading:checked:active, .calendar .calendar-day:checked:active, .calendar .calendar-month-header .calendar-month-label:checked:active, .icon-button.flat:checked:active, .flat.login-dialog-button.a11y-button:checked:active, .flat.login-dialog-button.cancel-button:checked:active, .flat.login-dialog-button.switch-user-button:checked:active, .flat.login-dialog-button.login-dialog-session-list-button:checked:active, .flat.screenshot-ui-show-pointer-button:checked:active, .message .message-header .flat.message-expand-button:checked:active, + .message .message-header .flat.message-close-button:checked:active, .message-notification-group .flat.message-collapse-button:checked:active, .calendar .calendar-month-header .pager-button:checked:active, .button.flat:checked:active { + background-color: st-darken(st-darken(#fafafb, 8%), 9%); } + +.keyboard-brightness-level .button:checked, .quick-toggle:checked, .calendar .calendar-day.calendar-today, .icon-button.default, .default.login-dialog-button.a11y-button, .default.login-dialog-button.cancel-button, .default.login-dialog-button.switch-user-button, .default.login-dialog-button.login-dialog-session-list-button, .default.screenshot-ui-show-pointer-button, .message .message-header .default.message-expand-button, +.message .message-header .default.message-close-button, .message-notification-group .default.message-collapse-button, .calendar .calendar-month-header .default.pager-button, .button.default { + color: -st-accent-fg-color; + background-color: -st-accent-color; } + .keyboard-brightness-level .button:focus:checked, .quick-toggle:focus:checked, .calendar .calendar-day.calendar-today:focus, .icon-button.default:focus, .default.login-dialog-button.a11y-button:focus, .default.login-dialog-button.cancel-button:focus, .default.login-dialog-button.switch-user-button:focus, .default.login-dialog-button.login-dialog-session-list-button:focus, .default.screenshot-ui-show-pointer-button:focus, .message .message-header .default.message-expand-button:focus, + .message .message-header .default.message-close-button:focus, .message-notification-group .default.message-collapse-button:focus, .calendar .calendar-month-header .default.pager-button:focus, .button.default:focus { + color: -st-accent-fg-color; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + box-shadow: inset 0 0 0 2px st-transparentize(st-darken(-st-accent-color, 20%), 0.2) !important; + background-color: st-mix(-st-accent-color, -st-accent-color, 5%); } + .keyboard-brightness-level .button:focus:hover:checked, .quick-toggle:focus:hover:checked, .calendar .calendar-day.calendar-today:focus:hover, .icon-button.default:focus:hover, .default.login-dialog-button.a11y-button:focus:hover, .default.login-dialog-button.cancel-button:focus:hover, .default.login-dialog-button.switch-user-button:focus:hover, .default.login-dialog-button.login-dialog-session-list-button:focus:hover, .default.screenshot-ui-show-pointer-button:focus:hover, .message .message-header .default.message-expand-button:focus:hover, + .message .message-header .default.message-close-button:focus:hover, .message-notification-group .default.message-collapse-button:focus:hover, .calendar .calendar-month-header .default.pager-button:focus:hover, .button.default:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(-st-accent-color, 4%), 5%); } + .keyboard-brightness-level .button:hover:checked, .quick-toggle:hover:checked, .calendar .calendar-day.calendar-today:hover, .icon-button.default:hover, .default.login-dialog-button.a11y-button:hover, .default.login-dialog-button.cancel-button:hover, .default.login-dialog-button.switch-user-button:hover, .default.login-dialog-button.login-dialog-session-list-button:hover, .default.screenshot-ui-show-pointer-button:hover, .message .message-header .default.message-expand-button:hover, + .message .message-header .default.message-close-button:hover, .message-notification-group .default.message-collapse-button:hover, .calendar .calendar-month-header .default.pager-button:hover, .button.default:hover { + color: -st-accent-fg-color; + background-color: st-darken(-st-accent-color, 4%); } + .keyboard-brightness-level .button:insensitive:checked, .quick-toggle:insensitive:checked, .calendar .calendar-day.calendar-today:insensitive, .icon-button.default:insensitive, .default.login-dialog-button.a11y-button:insensitive, .default.login-dialog-button.cancel-button:insensitive, .default.login-dialog-button.switch-user-button:insensitive, .default.login-dialog-button.login-dialog-session-list-button:insensitive, .default.screenshot-ui-show-pointer-button:insensitive, .message .message-header .default.message-expand-button:insensitive, + .message .message-header .default.message-close-button:insensitive, .message-notification-group .default.message-collapse-button:insensitive, .calendar .calendar-month-header .default.pager-button:insensitive, .button.default:insensitive { + color: st-transparentize(-st-accent-fg-color, 0.6); + background-color: st-lighten(-st-accent-color, 3%); } + .keyboard-brightness-level .button:active:checked, .quick-toggle:active:checked, .calendar .calendar-day.calendar-today:active, .icon-button.default:active, .default.login-dialog-button.a11y-button:active, .default.login-dialog-button.cancel-button:active, .default.login-dialog-button.switch-user-button:active, .default.login-dialog-button.login-dialog-session-list-button:active, .default.screenshot-ui-show-pointer-button:active, .message .message-header .default.message-expand-button:active, + .message .message-header .default.message-close-button:active, .message-notification-group .default.message-collapse-button:active, .calendar .calendar-month-header .default.pager-button:active, .button.default:active { + color: -st-accent-fg-color; + background-color: st-darken(-st-accent-color, 9%); } + .keyboard-brightness-level .button:active:hover:checked, .quick-toggle:active:hover:checked, .calendar .calendar-day.calendar-today:active:hover, .icon-button.default:active:hover, .default.login-dialog-button.a11y-button:active:hover, .default.login-dialog-button.cancel-button:active:hover, .default.login-dialog-button.switch-user-button:active:hover, .default.login-dialog-button.login-dialog-session-list-button:active:hover, .default.screenshot-ui-show-pointer-button:active:hover, .message .message-header .default.message-expand-button:active:hover, + .message .message-header .default.message-close-button:active:hover, .message-notification-group .default.message-collapse-button:active:hover, .calendar .calendar-month-header .default.pager-button:active:hover, .button.default:active:hover { + background-color: st-darken(st-darken(-st-accent-color, 9%), 4%); } + .keyboard-brightness-level .button:active:focus:checked, .quick-toggle:active:focus:checked, .calendar .calendar-day.calendar-today:active:focus, .icon-button.default:active:focus, .default.login-dialog-button.a11y-button:active:focus, .default.login-dialog-button.cancel-button:active:focus, .default.login-dialog-button.switch-user-button:active:focus, .default.login-dialog-button.login-dialog-session-list-button:active:focus, .default.screenshot-ui-show-pointer-button:active:focus, .message .message-header .default.message-expand-button:active:focus, + .message .message-header .default.message-close-button:active:focus, .message-notification-group .default.message-collapse-button:active:focus, .calendar .calendar-month-header .default.pager-button:active:focus, .button.default:active:focus { + background-color: st-mix(-st-accent-color, st-darken(-st-accent-color, 9%), 5%); } + +.popup-sub-menu .popup-menu-item, .popup-menu-item { + font-weight: normal; + spacing: 6px; + transition-duration: 100ms; + padding: 9px 12px; } + +#LookingGlassExtensions .lg-extension, #LookingGlassWindows .lg-window, .calendar, .datemenu-today-button, .quick-toggle-menu, .message, .events-button, +.world-clocks-button, +.weather-button { + border-radius: 12px; + padding: 0.818em; + margin: 4px; + background-color: #ffffff; + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.03); + border: 1px solid rgba(0, 0, 0, 0.09); } + +.quick-toggle-menu, .message, .events-button, +.world-clocks-button, +.weather-button { + color: #222226; + background-color: #ffffff; } + .quick-toggle-menu:hover, .message:hover, .events-button:hover, + .world-clocks-button:hover, + .weather-button:hover { + color: #222226; + background-color: st-darken(#ffffff, 4%); } + .quick-toggle-menu:active, .message:active, .events-button:active, + .world-clocks-button:active, + .weather-button:active { + color: #222226; + background-color: st-darken(#ffffff, 9%); } + .quick-toggle-menu:active:hover, .message:active:hover, .events-button:active:hover, + .world-clocks-button:active:hover, + .weather-button:active:hover { + background-color: st-darken(st-darken(#ffffff, 9%), 4%); } + .quick-toggle-menu:active:focus, .message:active:focus, .events-button:active:focus, + .world-clocks-button:active:focus, + .weather-button:active:focus { + background-color: st-mix(-st-accent-color, st-darken(#ffffff, 9%), 5%); } + .quick-toggle-menu:focus, .message:focus, .events-button:focus, + .world-clocks-button:focus, + .weather-button:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, #ffffff, 5%); } + .quick-toggle-menu:focus:hover, .message:focus:hover, .events-button:focus:hover, + .world-clocks-button:focus:hover, + .weather-button:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(#ffffff, 4%), 5%); } + .quick-toggle-menu:insensitive, .message:insensitive, .events-button:insensitive, + .world-clocks-button:insensitive, + .weather-button:insensitive { + color: st-transparentize(#222226, 0.6); + background-color: st-lighten(#ffffff, 3%); } + +.calendar, .datemenu-today-button { + border: 1px solid transparent !important; + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .calendar:insensitive, .datemenu-today-button:insensitive { + background-color: transparent !important; } + .calendar:hover, .datemenu-today-button:hover { + color: #222226; + background-color: st-darken(#fafafb, 7%); } + .calendar:active, .datemenu-today-button:active { + color: #222226; + background-color: st-darken(#fafafb, 9%); } + .calendar:active:hover, .datemenu-today-button:active:hover { + background-color: st-darken(st-darken(#fafafb, 9%), 7%); } + .calendar:active:focus, .datemenu-today-button:active:focus { + background-color: st-mix(-st-accent-color, st-darken(#fafafb, 9%), 5%); } + .calendar:focus, .datemenu-today-button:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, #ffffff, 5%); } + .calendar:focus:hover, .datemenu-today-button:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(#ffffff, 4%), 5%); } + .calendar:insensitive, .datemenu-today-button:insensitive { + color: st-transparentize(#222226, 0.6); + background-color: st-lighten(#ffffff, 3%); } + +.unlock-dialog .login-dialog-prompt-entry, .login-dialog .login-dialog-prompt-entry, .app-folder-dialog .folder-name-container .folder-name-entry, .search-entry, .lg-dialog StEntry, StEntry { + border-radius: 8px; + padding: 9px 9px; + selection-background-color: st-transparentize(-st-accent-color, 0.7); + selected-color: #222226; } + +StEntry { + background-color: #e0e0e1; + color: rgba(34, 34, 38, 0.7); } + StEntry:hover { + background-color: #d6d6d7; + color: #222226; } + StEntry:focus { + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, #e0e0e1, 5%); + color: #222226; } + StEntry:insensitive { + background-color: #e8e8e9; + color: rgba(34, 34, 38, 0.5); } + StEntry StLabel.hint-text { + color: rgba(34, 34, 38, 0.7); } + +.notification-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button { + font-weight: bold; + padding: 6px 12px; + border-radius: 8px; + color: #222226; + background-color: rgba(34, 34, 38, 0.15); } + .notification-button:focus, .message .message-header .message-expand-button:focus, + .message .message-header .message-close-button:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(34, 34, 38, 0.15), 5%); } + .notification-button:focus:hover, .message .message-header .message-expand-button:focus:hover, + .message .message-header .message-close-button:focus:hover { + background-color: st-mix(-st-accent-color, rgba(34, 34, 38, 0.3), 5%); } + .notification-button:hover, .message .message-header .message-expand-button:hover, + .message .message-header .message-close-button:hover { + color: #222226; + background-color: rgba(34, 34, 38, 0.3); } + .notification-button:active, .message .message-header .message-expand-button:active, + .message .message-header .message-close-button:active { + color: #222226; + background-color: rgba(34, 34, 38, 0.2); } + .notification-button:active:hover, .message .message-header .message-expand-button:active:hover, + .message .message-header .message-close-button:active:hover { + background-color: rgba(34, 34, 38, 0.2); } + .notification-button:active:focus, .message .message-header .message-expand-button:active:focus, + .message .message-header .message-close-button:active:focus { + background-color: st-mix(-st-accent-color, rgba(34, 34, 38, 0.2), 5%); } + .notification-button:checked, .message .message-header .message-expand-button:checked, + .message .message-header .message-close-button:checked { + color: #222226; + background-color: st-darken(st-mix(#222226, #fafafb, 12%), 8%); } + .notification-button:checked:hover, .message .message-header .message-expand-button:checked:hover, + .message .message-header .message-close-button:checked:hover { + background-color: st-darken(st-darken(st-mix(#222226, #fafafb, 12%), 8%), 4%); } + .notification-button:checked:active, .message .message-header .message-expand-button:checked:active, + .message .message-header .message-close-button:checked:active { + background-color: st-darken(st-darken(st-mix(#222226, #fafafb, 12%), 8%), 9%); } + .notification-button:insensitive, .message .message-header .message-expand-button:insensitive, + .message .message-header .message-close-button:insensitive { + color: st-transparentize(#222226, 0.6); + background-color: rgba(34, 34, 38, 0.1); } + +.modal-dialog .modal-dialog-button-box .modal-dialog-button { + font-weight: bold; + padding: 12px; + border-radius: 12px; + color: #222226; + background-color: rgba(34, 34, 38, 0.1); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(34, 34, 38, 0.1), 5%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:focus:hover { + background-color: st-mix(-st-accent-color, rgba(34, 34, 38, 0.13), 5%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:hover { + color: #222226; + background-color: rgba(34, 34, 38, 0.13); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:active { + color: #222226; + background-color: rgba(34, 34, 38, 0.16); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:active:hover { + background-color: rgba(34, 34, 38, 0.19); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:active:focus { + background-color: st-mix(-st-accent-color, rgba(34, 34, 38, 0.16), 5%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:checked { + color: #222226; + background-color: st-darken(st-mix(#222226, #fafafb, 12%), 8%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:checked:hover { + background-color: st-darken(st-darken(st-mix(#222226, #fafafb, 12%), 8%), 4%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:checked:active { + background-color: st-darken(st-darken(st-mix(#222226, #fafafb, 12%), 8%), 9%); } + .modal-dialog .modal-dialog-button-box .modal-dialog-button:insensitive { + color: st-transparentize(#222226, 0.6); + background-color: st-lighten(st-mix(#222226, #fafafb, 12%), 3%); } + +.dash-label, .window-caption, .screenshot-ui-tooltip { + background-color: rgba(0, 0, 0, 0.9); + border: 1px solid rgba(255, 255, 255, 0.1); + color: #ffffff; + border-radius: 999px; + padding: 6px 12px; + text-align: center; } + +/* General Typography */ +.unlock-dialog-clock .unlock-dialog-clock-date, .app-folder-dialog .folder-name-container .folder-name-label, .app-folder-dialog .folder-name-container .folder-name-entry, .search-statustext { + font-weight: 800; + font-size: 1.818em; } + +.conflicting-session-dialog-content .conflicting-session-dialog-title, .message-dialog-content .message-dialog-title, .message-notification-group .message-group-header .message-group-title, .datemenu-today-button .date-label { + font-weight: 800; + font-size: 1.364em; } + +.login-dialog .user-widget.horizontal .user-widget-label, +.unlock-dialog .user-widget.horizontal .user-widget-label, .quick-toggle-menu .header .title, .message-list .message-list-placeholder { + font-weight: 700; + font-size: 1.364em; } + +.parental-controls-shield .parental-controls-shield-button, .parental-controls-shield .parental-controls-shield-title, .login-dialog-auth-list-label, #LookingGlassDebugFlags .lg-debug-flags-header, #LookingGlassExtensions .lg-extensions-none, .word-suggestions, .bt-menu-placeholder.popup-menu-item, .restart-message, .polkit-dialog-user-layout .polkit-dialog-user-label, +.polkit-dialog-user-layout .polkit-dialog-user-root-label, .message-dialog-content .message-dialog-title.lightweight { + font-weight: 700; + font-size: 1.182em; } + +.login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label { + font-weight: 700; + font-size: 1em; } + +.quick-toggle-menu .header .subtitle, .app-menu .popup-inactive-menu-item:first-child > StLabel { + font-weight: 700; + font-size: 0.818em; } + +.lg-completions-text, .caps-lock-warning-label, .background-app-item .subtitle, .quick-toggle .quick-toggle-subtitle, .screenshot-ui-type-button .icon-label-button-container, .prompt-dialog .prompt-dialog-error-label, +.prompt-dialog .prompt-dialog-info-label, +.prompt-dialog .prompt-dialog-null-label, .run-dialog .run-dialog-description, .dialog-list .dialog-list-box .dialog-list-item .dialog-list-item-description, .message .message-header .message-header-content .event-time, .world-clocks-button .world-clocks-grid .world-clocks-timezone, .events-button .events-box .events-list .event-box .event-time { + font-weight: 400; + font-size: 0.818em; } + +.weather-button .weather-box .weather-grid .weather-forecast-time, .calendar .calendar-week-number, .calendar .calendar-day-heading, .calendar .calendar-day { + font-weight: 400; + font-size: 0.818em; } + +#LookingGlassDebugFlags .lg-debug-flag-button StLabel, #LookingGlassEvaluator .evaluator-results, .lg-dialog .actor-link { + font-family: monospace; } + +.unlock-dialog-clock .unlock-dialog-clock-time, #panel, .weather-button .weather-box .weather-grid .weather-forecast-temp, .world-clocks-button .world-clocks-grid .world-clocks-timezone, .world-clocks-button .world-clocks-grid .world-clocks-time, .events-button .events-box .events-list .event-box .event-time, .calendar .calendar-day-heading, .calendar .calendar-day { + font-feature-settings: "tnum"; } + +/* OSD Elements */ +#LookingGlassDialog, .screenshot-ui-panel, .workspace-switcher, .switcher-list, .resize-popup, .osd-window { + color: #ffffff; + background-color: #2e2e33; + border: 1px solid rgba(255, 255, 255, 0.02); + border-radius: 999px; + padding: 12px; } + +.lg-dialog StEntry { + background-color: #47474c; + color: rgba(255, 255, 255, 0.7); } + .lg-dialog StEntry:hover { + background-color: #515157; + color: #ffffff; } + .lg-dialog StEntry:focus { + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, #47474c, 5%); + color: #ffffff; } + .lg-dialog StEntry:insensitive { + background-color: #404044; + color: rgba(255, 255, 255, 0.5); } + .lg-dialog StEntry StLabel.hint-text { + color: rgba(255, 255, 255, 0.7); } + +#LookingGlassDebugFlags .lg-debug-flag-button, #LookingGlassPropertyInspector .lg-obj-inspector-close-button, +#LookingGlassPropertyInspector .lg-obj-inspector-button, #LookingGlassDialog > #Toolbar .lg-toolbar-button { + color: #ffffff; + background-color: st-mix(#ffffff, #2e2e33, 12%); } + #LookingGlassDebugFlags .lg-debug-flag-button:focus, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:focus, + #LookingGlassPropertyInspector .lg-obj-inspector-button:focus, #LookingGlassDialog > #Toolbar .lg-toolbar-button:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(#ffffff, #2e2e33, 12%), 5%); } + #LookingGlassDebugFlags .lg-debug-flag-button:focus:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:focus:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:focus:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:focus:hover { + background-color: st-mix(-st-accent-color, st-lighten(st-mix(#ffffff, #2e2e33, 12%), 4%), 5%); } + #LookingGlassDebugFlags .lg-debug-flag-button:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:hover { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #2e2e33, 12%), 4%); } + #LookingGlassDebugFlags .lg-debug-flag-button:active, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:active, + #LookingGlassPropertyInspector .lg-obj-inspector-button:active, #LookingGlassDialog > #Toolbar .lg-toolbar-button:active { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #2e2e33, 12%), 9%); } + #LookingGlassDebugFlags .lg-debug-flag-button:active:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:active:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:active:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #2e2e33, 12%), 9%), 4%); } + #LookingGlassDebugFlags .lg-debug-flag-button:active:focus, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:active:focus, + #LookingGlassPropertyInspector .lg-obj-inspector-button:active:focus, #LookingGlassDialog > #Toolbar .lg-toolbar-button:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(st-mix(#ffffff, #2e2e33, 12%), 9%), 5%); } + #LookingGlassDebugFlags .lg-debug-flag-button:checked, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:checked, + #LookingGlassPropertyInspector .lg-obj-inspector-button:checked, #LookingGlassDialog > #Toolbar .lg-toolbar-button:checked { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #2e2e33, 12%), 8%); } + #LookingGlassDebugFlags .lg-debug-flag-button:checked:hover, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:checked:hover, + #LookingGlassPropertyInspector .lg-obj-inspector-button:checked:hover, #LookingGlassDialog > #Toolbar .lg-toolbar-button:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #2e2e33, 12%), 8%), 4%); } + #LookingGlassDebugFlags .lg-debug-flag-button:checked:active, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:checked:active, + #LookingGlassPropertyInspector .lg-obj-inspector-button:checked:active, #LookingGlassDialog > #Toolbar .lg-toolbar-button:checked:active { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #2e2e33, 12%), 8%), 9%); } + #LookingGlassDebugFlags .lg-debug-flag-button:insensitive, #LookingGlassPropertyInspector .lg-obj-inspector-close-button:insensitive, + #LookingGlassPropertyInspector .lg-obj-inspector-button:insensitive, #LookingGlassDialog > #Toolbar .lg-toolbar-button:insensitive { + color: st-transparentize(#ffffff, 0.6); + background-color: st-darken(st-mix(#ffffff, #2e2e33, 12%), 3%); } + +#LookingGlassDialog .notebook-tab, .screenshot-ui-show-pointer-button, .screenshot-ui-type-button { + color: #ffffff; + background-color: #2e2e33; } + #LookingGlassDialog .notebook-tab:focus, .screenshot-ui-show-pointer-button:focus, .screenshot-ui-type-button:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(46, 46, 51, 0.25), 5%); } + #LookingGlassDialog .notebook-tab:focus:hover, .screenshot-ui-show-pointer-button:focus:hover, .screenshot-ui-type-button:focus:hover { + background-color: st-mix(-st-accent-color, st-lighten(#2e2e33, 7%), 5%); } + #LookingGlassDialog .notebook-tab:hover, .screenshot-ui-show-pointer-button:hover, .screenshot-ui-type-button:hover { + color: #ffffff; + background-color: st-lighten(#2e2e33, 7%); } + #LookingGlassDialog .notebook-tab:active, .screenshot-ui-show-pointer-button:active, .screenshot-ui-type-button:active { + color: #ffffff; + background-color: st-lighten(#2e2e33, 9%); } + #LookingGlassDialog .notebook-tab:active:hover, .screenshot-ui-show-pointer-button:active:hover, .screenshot-ui-type-button:active:hover { + background-color: st-lighten(st-lighten(#2e2e33, 9%), 7%); } + #LookingGlassDialog .notebook-tab:active:focus, .screenshot-ui-show-pointer-button:active:focus, .screenshot-ui-type-button:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(#2e2e33, 9%), 5%); } + #LookingGlassDialog .notebook-tab:checked, .screenshot-ui-show-pointer-button:checked, .screenshot-ui-type-button:checked { + color: #ffffff; + background-color: st-lighten(#2e2e33, 8%); } + #LookingGlassDialog .notebook-tab:checked:hover, .screenshot-ui-show-pointer-button:checked:hover, .screenshot-ui-type-button:checked:hover { + background-color: st-lighten(st-lighten(#2e2e33, 8%), 7%); } + #LookingGlassDialog .notebook-tab:checked:active, .screenshot-ui-show-pointer-button:checked:active, .screenshot-ui-type-button:checked:active { + background-color: st-lighten(st-lighten(#2e2e33, 8%), 9%); } + #LookingGlassDialog .notebook-tab:insensitive, .screenshot-ui-show-pointer-button:insensitive, .screenshot-ui-type-button:insensitive { + color: st-transparentize(#ffffff, 0.6); + background-color: #2e2e33; } + +/* System Elements */ +.login-dialog .login-dialog-prompt-entry, .app-folder-dialog .folder-name-container .folder-name-entry, .search-entry { + background-color: #47474b; + color: rgba(250, 250, 251, 0.7); } + .login-dialog .login-dialog-prompt-entry:hover, .app-folder-dialog .folder-name-container .folder-name-entry:hover, .search-entry:hover { + background-color: #515155; + color: #fafafb; } + .login-dialog .login-dialog-prompt-entry:focus, .app-folder-dialog .folder-name-container .folder-name-entry:focus, .search-entry:focus { + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, #47474b, 5%); + color: #fafafb; } + .login-dialog .login-dialog-prompt-entry:insensitive, .app-folder-dialog .folder-name-container .folder-name-entry:insensitive, .search-entry:insensitive { + background-color: #404043; + color: rgba(250, 250, 251, 0.5); } + .login-dialog .login-dialog-prompt-entry StLabel.hint-text, .app-folder-dialog .folder-name-container .folder-name-entry StLabel.hint-text, .search-entry StLabel.hint-text { + color: rgba(250, 250, 251, 0.7); } + +.login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button { + color: #fafafb; + background-color: st-mix(#fafafb, #2e2e33, 12%); } + .login-dialog-button.a11y-button:insensitive, .login-dialog-button.cancel-button:insensitive, .login-dialog-button.switch-user-button:insensitive, .login-dialog-button.login-dialog-session-list-button:insensitive { + color: st-transparentize(#fafafb, 0.6); + background-color: st-lighten(st-mix(#fafafb, #2e2e33, 12%), 3%); } + .login-dialog-button.a11y-button:focus, .login-dialog-button.cancel-button:focus, .login-dialog-button.switch-user-button:focus, .login-dialog-button.login-dialog-session-list-button:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(#fafafb, #2e2e33, 12%), 5%); } + .login-dialog-button.a11y-button:focus:hover, .login-dialog-button.cancel-button:focus:hover, .login-dialog-button.switch-user-button:focus:hover, .login-dialog-button.login-dialog-session-list-button:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#fafafb, #2e2e33, 12%), 4%), 5%); } + .login-dialog-button.a11y-button:hover, .login-dialog-button.cancel-button:hover, .login-dialog-button.switch-user-button:hover, .login-dialog-button.login-dialog-session-list-button:hover { + color: #fafafb; + background-color: st-darken(st-mix(#fafafb, #2e2e33, 12%), 4%); } + .login-dialog-button.a11y-button:active, .login-dialog-button.cancel-button:active, .login-dialog-button.switch-user-button:active, .login-dialog-button.login-dialog-session-list-button:active { + color: #fafafb; + background-color: st-darken(st-mix(#fafafb, #2e2e33, 12%), 9%); } + .login-dialog-button.a11y-button:active:hover, .login-dialog-button.cancel-button:active:hover, .login-dialog-button.switch-user-button:active:hover, .login-dialog-button.login-dialog-session-list-button:active:hover { + background-color: st-darken(st-darken(st-mix(#fafafb, #2e2e33, 12%), 9%), 4%); } + .login-dialog-button.a11y-button:active:focus, .login-dialog-button.cancel-button:active:focus, .login-dialog-button.switch-user-button:active:focus, .login-dialog-button.login-dialog-session-list-button:active:focus { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#fafafb, #2e2e33, 12%), 9%), 5%); } + .login-dialog-button.a11y-button:checked, .login-dialog-button.cancel-button:checked, .login-dialog-button.switch-user-button:checked, .login-dialog-button.login-dialog-session-list-button:checked { + color: #fafafb; + background-color: st-darken(st-mix(#fafafb, #2e2e33, 12%), 8%); } + .login-dialog-button.a11y-button:checked:hover, .login-dialog-button.cancel-button:checked:hover, .login-dialog-button.switch-user-button:checked:hover, .login-dialog-button.login-dialog-session-list-button:checked:hover { + background-color: st-darken(st-darken(st-mix(#fafafb, #2e2e33, 12%), 8%), 4%); } + .login-dialog-button.a11y-button:checked:active, .login-dialog-button.cancel-button:checked:active, .login-dialog-button.switch-user-button:checked:active, .login-dialog-button.login-dialog-session-list-button:checked:active { + background-color: st-darken(st-darken(st-mix(#fafafb, #2e2e33, 12%), 8%), 9%); } + +/* Lockscreen Elements */ +.unlock-dialog-notifications-container .message StButton, +.unlock-dialog-notifications-container .unlock-dialog-notification-source StButton, .parental-controls-shield .parental-controls-shield-button, .unlock-dialog .button, +.unlock-dialog .icon-button, +.unlock-dialog .calendar .calendar-month-header .pager-button, +.calendar .calendar-month-header .unlock-dialog .pager-button, +.unlock-dialog .message-notification-group .message-collapse-button, +.message-notification-group .unlock-dialog .message-collapse-button, +.unlock-dialog .message .message-header .message-expand-button, +.message .message-header .unlock-dialog .message-expand-button, +.unlock-dialog .message .message-header .message-close-button, +.message .message-header .unlock-dialog .message-close-button, +.unlock-dialog .screenshot-ui-show-pointer-button, +.unlock-dialog .login-dialog-button.a11y-button, +.unlock-dialog .login-dialog-button.cancel-button, +.unlock-dialog .login-dialog-button.switch-user-button, +.unlock-dialog .login-dialog-button.login-dialog-session-list-button, .unlock-dialog .login-dialog-auth-list-item { + color: #fafafb; + background-color: rgba(250, 250, 251, 0.1); } + .unlock-dialog-notifications-container .message StButton:focus, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:focus, .parental-controls-shield .parental-controls-shield-button:focus, .unlock-dialog .button:focus, + .unlock-dialog .icon-button:focus, + .unlock-dialog .calendar .calendar-month-header .pager-button:focus, + .calendar .calendar-month-header .unlock-dialog .pager-button:focus, + .unlock-dialog .message-notification-group .message-collapse-button:focus, + .message-notification-group .unlock-dialog .message-collapse-button:focus, + .unlock-dialog .message .message-header .message-expand-button:focus, + .message .message-header .unlock-dialog .message-expand-button:focus, + .unlock-dialog .message .message-header .message-close-button:focus, + .message .message-header .unlock-dialog .message-close-button:focus, + .unlock-dialog .screenshot-ui-show-pointer-button:focus, + .unlock-dialog .login-dialog-button.a11y-button:focus, + .unlock-dialog .login-dialog-button.cancel-button:focus, + .unlock-dialog .login-dialog-button.switch-user-button:focus, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:focus, .unlock-dialog .login-dialog-auth-list-item:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(250, 250, 251, 0.1), 5%); } + .unlock-dialog-notifications-container .message StButton:focus:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:focus:hover, .parental-controls-shield .parental-controls-shield-button:focus:hover, .unlock-dialog .button:focus:hover, + .unlock-dialog .icon-button:focus:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:focus:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:focus:hover, + .unlock-dialog .message-notification-group .message-collapse-button:focus:hover, + .message-notification-group .unlock-dialog .message-collapse-button:focus:hover, + .unlock-dialog .message .message-header .message-expand-button:focus:hover, + .message .message-header .unlock-dialog .message-expand-button:focus:hover, + .unlock-dialog .message .message-header .message-close-button:focus:hover, + .message .message-header .unlock-dialog .message-close-button:focus:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:focus:hover, + .unlock-dialog .login-dialog-button.a11y-button:focus:hover, + .unlock-dialog .login-dialog-button.cancel-button:focus:hover, + .unlock-dialog .login-dialog-button.switch-user-button:focus:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:focus:hover, .unlock-dialog .login-dialog-auth-list-item:focus:hover { + background-color: st-mix(-st-accent-color, rgba(250, 250, 251, 0.13), 5%); } + .unlock-dialog-notifications-container .message StButton:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:hover, .parental-controls-shield .parental-controls-shield-button:hover, .unlock-dialog .button:hover, + .unlock-dialog .icon-button:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:hover, + .unlock-dialog .message-notification-group .message-collapse-button:hover, + .message-notification-group .unlock-dialog .message-collapse-button:hover, + .unlock-dialog .message .message-header .message-expand-button:hover, + .message .message-header .unlock-dialog .message-expand-button:hover, + .unlock-dialog .message .message-header .message-close-button:hover, + .message .message-header .unlock-dialog .message-close-button:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:hover, + .unlock-dialog .login-dialog-button.a11y-button:hover, + .unlock-dialog .login-dialog-button.cancel-button:hover, + .unlock-dialog .login-dialog-button.switch-user-button:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:hover, .unlock-dialog .login-dialog-auth-list-item:hover { + color: #fafafb; + background-color: rgba(250, 250, 251, 0.13); } + .unlock-dialog-notifications-container .message StButton:active, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:active, .parental-controls-shield .parental-controls-shield-button:active, .unlock-dialog .button:active, + .unlock-dialog .icon-button:active, + .unlock-dialog .calendar .calendar-month-header .pager-button:active, + .calendar .calendar-month-header .unlock-dialog .pager-button:active, + .unlock-dialog .message-notification-group .message-collapse-button:active, + .message-notification-group .unlock-dialog .message-collapse-button:active, + .unlock-dialog .message .message-header .message-expand-button:active, + .message .message-header .unlock-dialog .message-expand-button:active, + .unlock-dialog .message .message-header .message-close-button:active, + .message .message-header .unlock-dialog .message-close-button:active, + .unlock-dialog .screenshot-ui-show-pointer-button:active, + .unlock-dialog .login-dialog-button.a11y-button:active, + .unlock-dialog .login-dialog-button.cancel-button:active, + .unlock-dialog .login-dialog-button.switch-user-button:active, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:active, .unlock-dialog .login-dialog-auth-list-item:active { + color: #fafafb; + background-color: rgba(250, 250, 251, 0.16); } + .unlock-dialog-notifications-container .message StButton:active:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:active:hover, .parental-controls-shield .parental-controls-shield-button:active:hover, .unlock-dialog .button:active:hover, + .unlock-dialog .icon-button:active:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:active:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:active:hover, + .unlock-dialog .message-notification-group .message-collapse-button:active:hover, + .message-notification-group .unlock-dialog .message-collapse-button:active:hover, + .unlock-dialog .message .message-header .message-expand-button:active:hover, + .message .message-header .unlock-dialog .message-expand-button:active:hover, + .unlock-dialog .message .message-header .message-close-button:active:hover, + .message .message-header .unlock-dialog .message-close-button:active:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:active:hover, + .unlock-dialog .login-dialog-button.a11y-button:active:hover, + .unlock-dialog .login-dialog-button.cancel-button:active:hover, + .unlock-dialog .login-dialog-button.switch-user-button:active:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:active:hover, .unlock-dialog .login-dialog-auth-list-item:active:hover { + background-color: rgba(250, 250, 251, 0.19); } + .unlock-dialog-notifications-container .message StButton:active:focus, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:active:focus, .parental-controls-shield .parental-controls-shield-button:active:focus, .unlock-dialog .button:active:focus, + .unlock-dialog .icon-button:active:focus, + .unlock-dialog .calendar .calendar-month-header .pager-button:active:focus, + .calendar .calendar-month-header .unlock-dialog .pager-button:active:focus, + .unlock-dialog .message-notification-group .message-collapse-button:active:focus, + .message-notification-group .unlock-dialog .message-collapse-button:active:focus, + .unlock-dialog .message .message-header .message-expand-button:active:focus, + .message .message-header .unlock-dialog .message-expand-button:active:focus, + .unlock-dialog .message .message-header .message-close-button:active:focus, + .message .message-header .unlock-dialog .message-close-button:active:focus, + .unlock-dialog .screenshot-ui-show-pointer-button:active:focus, + .unlock-dialog .login-dialog-button.a11y-button:active:focus, + .unlock-dialog .login-dialog-button.cancel-button:active:focus, + .unlock-dialog .login-dialog-button.switch-user-button:active:focus, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:active:focus, .unlock-dialog .login-dialog-auth-list-item:active:focus { + background-color: st-mix(-st-accent-color, rgba(250, 250, 251, 0.16), 5%); } + .unlock-dialog-notifications-container .message StButton:checked, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:checked, .parental-controls-shield .parental-controls-shield-button:checked, .unlock-dialog .button:checked, + .unlock-dialog .icon-button:checked, + .unlock-dialog .calendar .calendar-month-header .pager-button:checked, + .calendar .calendar-month-header .unlock-dialog .pager-button:checked, + .unlock-dialog .message-notification-group .message-collapse-button:checked, + .message-notification-group .unlock-dialog .message-collapse-button:checked, + .unlock-dialog .message .message-header .message-expand-button:checked, + .message .message-header .unlock-dialog .message-expand-button:checked, + .unlock-dialog .message .message-header .message-close-button:checked, + .message .message-header .unlock-dialog .message-close-button:checked, + .unlock-dialog .screenshot-ui-show-pointer-button:checked, + .unlock-dialog .login-dialog-button.a11y-button:checked, + .unlock-dialog .login-dialog-button.cancel-button:checked, + .unlock-dialog .login-dialog-button.switch-user-button:checked, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:checked, .unlock-dialog .login-dialog-auth-list-item:checked { + color: #fafafb; + background-color: st-darken(st-mix(#fafafb, #fafafb, 12%), 8%); } + .unlock-dialog-notifications-container .message StButton:checked:hover, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:checked:hover, .parental-controls-shield .parental-controls-shield-button:checked:hover, .unlock-dialog .button:checked:hover, + .unlock-dialog .icon-button:checked:hover, + .unlock-dialog .calendar .calendar-month-header .pager-button:checked:hover, + .calendar .calendar-month-header .unlock-dialog .pager-button:checked:hover, + .unlock-dialog .message-notification-group .message-collapse-button:checked:hover, + .message-notification-group .unlock-dialog .message-collapse-button:checked:hover, + .unlock-dialog .message .message-header .message-expand-button:checked:hover, + .message .message-header .unlock-dialog .message-expand-button:checked:hover, + .unlock-dialog .message .message-header .message-close-button:checked:hover, + .message .message-header .unlock-dialog .message-close-button:checked:hover, + .unlock-dialog .screenshot-ui-show-pointer-button:checked:hover, + .unlock-dialog .login-dialog-button.a11y-button:checked:hover, + .unlock-dialog .login-dialog-button.cancel-button:checked:hover, + .unlock-dialog .login-dialog-button.switch-user-button:checked:hover, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:checked:hover, .unlock-dialog .login-dialog-auth-list-item:checked:hover { + background-color: st-darken(st-darken(st-mix(#fafafb, #fafafb, 12%), 8%), 4%); } + .unlock-dialog-notifications-container .message StButton:checked:active, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:checked:active, .parental-controls-shield .parental-controls-shield-button:checked:active, .unlock-dialog .button:checked:active, + .unlock-dialog .icon-button:checked:active, + .unlock-dialog .calendar .calendar-month-header .pager-button:checked:active, + .calendar .calendar-month-header .unlock-dialog .pager-button:checked:active, + .unlock-dialog .message-notification-group .message-collapse-button:checked:active, + .message-notification-group .unlock-dialog .message-collapse-button:checked:active, + .unlock-dialog .message .message-header .message-expand-button:checked:active, + .message .message-header .unlock-dialog .message-expand-button:checked:active, + .unlock-dialog .message .message-header .message-close-button:checked:active, + .message .message-header .unlock-dialog .message-close-button:checked:active, + .unlock-dialog .screenshot-ui-show-pointer-button:checked:active, + .unlock-dialog .login-dialog-button.a11y-button:checked:active, + .unlock-dialog .login-dialog-button.cancel-button:checked:active, + .unlock-dialog .login-dialog-button.switch-user-button:checked:active, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:checked:active, .unlock-dialog .login-dialog-auth-list-item:checked:active { + background-color: st-darken(st-darken(st-mix(#fafafb, #fafafb, 12%), 8%), 9%); } + .unlock-dialog-notifications-container .message StButton:insensitive, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:insensitive, .parental-controls-shield .parental-controls-shield-button:insensitive, .unlock-dialog .button:insensitive, + .unlock-dialog .icon-button:insensitive, + .unlock-dialog .calendar .calendar-month-header .pager-button:insensitive, + .calendar .calendar-month-header .unlock-dialog .pager-button:insensitive, + .unlock-dialog .message-notification-group .message-collapse-button:insensitive, + .message-notification-group .unlock-dialog .message-collapse-button:insensitive, + .unlock-dialog .message .message-header .message-expand-button:insensitive, + .message .message-header .unlock-dialog .message-expand-button:insensitive, + .unlock-dialog .message .message-header .message-close-button:insensitive, + .message .message-header .unlock-dialog .message-close-button:insensitive, + .unlock-dialog .screenshot-ui-show-pointer-button:insensitive, + .unlock-dialog .login-dialog-button.a11y-button:insensitive, + .unlock-dialog .login-dialog-button.cancel-button:insensitive, + .unlock-dialog .login-dialog-button.switch-user-button:insensitive, + .unlock-dialog .login-dialog-button.login-dialog-session-list-button:insensitive, .unlock-dialog .login-dialog-auth-list-item:insensitive { + color: st-transparentize(#fafafb, 0.6); + background-color: st-lighten(st-mix(#fafafb, #fafafb, 12%), 3%); } + +.unlock-dialog .login-dialog-prompt-entry { + background-color: rgba(250, 250, 251, 0.1); + color: rgba(250, 250, 251, 0.7); } + .unlock-dialog .login-dialog-prompt-entry:hover { + background-color: rgba(255, 255, 255, 0.1); + color: #fafafb; } + .unlock-dialog .login-dialog-prompt-entry:focus { + box-shadow: inset 0 0 0 2px st-transparentize(rgba(250, 250, 251, 0.4), 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(250, 250, 251, 0.1), 5%); + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(rgba(250, 250, 251, 0.4), 0.2) !important; + background-color: st-mix(rgba(250, 250, 251, 0.4), rgba(250, 250, 251, 0.1), 5%); } + .unlock-dialog .login-dialog-prompt-entry:insensitive { + background-color: rgba(242, 242, 244, 0.1); + color: rgba(250, 250, 251, 0.5); } + .unlock-dialog .login-dialog-prompt-entry StLabel.hint-text { + color: rgba(250, 250, 251, 0.7); } + +/* WIDGETS */ +.shell-link { + color: st-darken(-st-accent-color, 10%); } + .shell-link:hover { + color: st-lighten(st-darken(-st-accent-color, 10%), 10%); } + +.lowres-icon { + icon-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } + +.icon-dropshadow { + icon-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); } + +/* Entries */ +StEntry StIcon.capslock-warning { + icon-size: 1.091em; + warning-color: #e5a50a; + padding: 0 4px; } + +StEntry StIcon.peek-password { + icon-size: 1.091em; + padding: 0 4px; } + +StEntry StLabel.hint-text { + margin-left: 2px; } + +/* Buttons */ +.button { + min-height: 1.5em; } + +.icon-button, .login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button, .screenshot-ui-show-pointer-button, .message .message-header .message-expand-button, +.message .message-header .message-close-button, .message-notification-group .message-collapse-button, .calendar .calendar-month-header .pager-button { + border-radius: 999px; + padding: 0.818em; + min-height: 1.091em; } + .icon-button StIcon, .login-dialog-button.a11y-button StIcon, .login-dialog-button.cancel-button StIcon, .login-dialog-button.switch-user-button StIcon, .login-dialog-button.login-dialog-session-list-button StIcon, .screenshot-ui-show-pointer-button StIcon, .message .message-header .message-expand-button StIcon, + .message .message-header .message-close-button StIcon, .message-notification-group .message-collapse-button StIcon, .calendar .calendar-month-header .pager-button StIcon { + icon-size: 1.091em; + -st-icon-style: symbolic; } + +/* Check Boxes */ +.check-box StBoxLayout { + spacing: .8em; } + +.check-box StBin { + border-radius: 7px; + padding: 2px; } + +.check-box:focus StBin { + background-color: rgba(0, 0, 0, 0.01); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.65); } + +.check-box StIcon { + icon-size: 14px; + padding: 1px; + color: transparent; + border-radius: 6px; + border: 2px solid rgba(0, 0, 0, 0.15); } + +.check-box:hover StIcon { + border-color: rgba(0, 0, 0, 0.2); } + +.check-box:active StIcon { + border-color: rgba(0, 0, 0, 0.3); } + +.check-box:checked StIcon { + background-color: -st-accent-color; + color: -st-accent-fg-color; + border-color: transparent; } + +.check-box:checked:hover StIcon { + background-color: st-lighten(-st-accent-color, 5%); + color: st-lighten(-st-accent-fg-color, 5%); } + +.check-box:checked:active StIcon { + background-color: st-darken(-st-accent-color, 7%); + color: st-darken(-st-accent-fg-color, 7%); } + +/* Switches */ +.toggle-switch { + width: 46px; + border-radius: 999px; + transition-duration: 100ms; + color: #222226; + background: rgba(0, 0, 0, 0.15); } + .toggle-switch:hover { + background: rgba(0, 0, 0, 0.2); } + .toggle-switch StIcon { + icon-size: 16px; } + .toggle-switch .handle { + margin: 3px; + width: 20px; + height: 20px; + border-radius: 999px; + background: white; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + transition-duration: 100ms; } + .toggle-switch:checked { + background: -st-accent-color; + color: -st-accent-fg-color; } + .toggle-switch:checked:hover { + background-color: st-lighten(-st-accent-color, 5%); + color: st-lighten(-st-accent-fg-color, 5%); } + .toggle-switch:checked .handle { + background: white; } + +/* Slider */ +.slider { + color: #222226; + -barlevel-height: 4px; + -barlevel-background-color: rgba(34, 34, 38, 0.1); + -barlevel-active-background-color: -st-accent-color; + -barlevel-overdrive-color: #e01b24; + -barlevel-overdrive-separator-width: 1px; + -slider-handle-radius: 0.5455em; } + .slider:hover { + color: #333339; } + +/* Scrollbars */ +StScrollView.vfade { + -st-vfade-offset: 68px; } + +StScrollView.hfade { + -st-hfade-offset: 68px; } + +StScrollBar { + padding: 0; } + StScrollView StScrollBar { + min-width: 8px; + min-height: 8px; } + StScrollBar StBin#trough { + border-radius: 0; + background-color: transparent; } + StScrollBar > .vhandle, StScrollBar > .hhandle { + border-radius: 8px; + background-color: #b9b9bb; + border: 3px solid transparent; + transition: 500ms all ease; } + StScrollBar > .vhandle:hover, StScrollBar > .hhandle:hover { + background-color: #8e8e91; } + StScrollBar > .vhandle:active, StScrollBar > .hhandle:active { + background-color: #a4a4a6; } + +/* Popovers/Menus */ +.popup-menu-boxpointer, .candidate-popup-boxpointer { + -arrow-rise: 6px; } + +.popup-menu { + min-width: 15em; + color: #222226; } + .popup-menu.panel-menu { + margin-bottom: 1.75em; } + +.popup-menu-content, .candidate-popup-content { + padding: 6px; + background-color: #fafafb; + border-radius: 20px; + border: 1px solid #e6e6eb; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05); } + +.popup-menu-item { + background-color: transparent; + border-color: transparent; + box-shadow: none; + border-radius: 12px; } + .popup-menu-item:insensitive { + background-color: transparent !important; } + .popup-menu-item:active { + color: #222226; + background-color: st-darken(#ececf0, 9%); } + .popup-menu-item:active:hover { + background-color: st-darken(st-darken(#ececf0, 9%), 7%); } + .popup-menu-item:active:focus { + background-color: st-mix(-st-accent-color, st-darken(#ececf0, 9%), 5%); } + .popup-menu-item:hover, .popup-menu-item:selected, .popup-menu-item:checked { + color: #222226; + background-color: st-darken(#ececf0, 7%); } + .popup-menu-item:insensitive { + color: st-transparentize(#222226, 0.6); + background-color: #ececf0; } + .popup-menu-item:checked { + border-radius: 12px 12px 0 0 !important; } + .popup-menu-item .toggle-switch:ltr { + margin-left: 4px; } + .popup-menu-item .toggle-switch:rtl { + margin-right: 4px; } + +.popup-ornamented-menu-item:ltr { + padding-left: 6px; } + +.popup-ornamented-menu-item:rtl { + padding-right: 6px; } + +.popup-inactive-menu-item { + color: #222226; } + .popup-inactive-menu-item:insensitive { + color: #78787b; } + +.popup-menu-arrow, +.popup-menu-icon { + icon-size: 1.091em; } + +.popup-sub-menu { + border-radius: 0 0 13px 13px; + margin-bottom: 6px; + border: 1px solid transparent; + background-color: #cacad4; } + .popup-sub-menu .popup-menu-item { + border-radius: 0; + border-top-width: 0; + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .popup-sub-menu .popup-menu-item:insensitive { + background-color: transparent !important; } + .popup-sub-menu .popup-menu-item:active { + color: #222226; + background-color: st-darken(#cacad4, 9%); } + .popup-sub-menu .popup-menu-item:active:hover { + background-color: st-darken(st-darken(#cacad4, 9%), 7%); } + .popup-sub-menu .popup-menu-item:active:focus { + background-color: st-mix(-st-accent-color, st-darken(#cacad4, 9%), 5%); } + .popup-sub-menu .popup-menu-item:hover, .popup-sub-menu .popup-menu-item:selected, .popup-sub-menu .popup-menu-item:checked { + color: #222226; + background-color: st-darken(#cacad4, 7%); } + .popup-sub-menu .popup-menu-item:insensitive { + color: st-transparentize(#222226, 0.6); + background-color: #cacad4; } + .popup-sub-menu .popup-menu-item:last-child { + border-radius: 0 0 12px 12px; + border-bottom-width: 0; } + .popup-sub-menu .popup-menu-section .popup-menu-item:last-child:hover, .popup-sub-menu .popup-menu-section .popup-menu-item:last-child:focus { + border-radius: 0; } + .popup-sub-menu .popup-menu-section:last-child .popup-menu-item:last-child { + border-radius: 0 0 12px 12px; } + +.popup-menu-ornament { + icon-size: 1.091em !important; + width: 1.091em; } + +.popup-separator-menu-item { + border: none !important; } + .popup-separator-menu-item .popup-separator-menu-item-separator { + height: 1px; + background-color: rgba(34, 34, 38, 0.15); } + .popup-sub-menu .popup-separator-menu-item { + background-color: transparent; } + .popup-sub-menu .popup-separator-menu-item:ltr { + margin-right: 2.5em; } + .popup-sub-menu .popup-separator-menu-item:rtl { + margin-left: 2.5em; } + .popup-sub-menu .popup-separator-menu-item .popup-separator-menu-item-separator { + background-color: rgba(34, 34, 38, 0.15); } + +.background-menu { + -boxpointer-gap: 0px; + -arrow-rise: 0px; } + +.app-menu { + max-width: 27.25em; } + .app-menu .popup-inactive-menu-item:first-child > StLabel:ltr { + margin-right: 8px; } + .app-menu .popup-inactive-menu-item:first-child > StLabel:rtl { + margin-left: 8px; } + +/* Date/Time Menu */ +#calendarArea { + padding: 4px; } + +.datemenu-popover { + border-radius: 30px; } + +.datemenu-calendar-column { + spacing: 6px; } + .datemenu-calendar-column:ltr { + margin-left: 6px; } + .datemenu-calendar-column:rtl { + margin-right: 6px; } + .datemenu-calendar-column .datemenu-displays-box { + spacing: 6px; } + +.datemenu-today-button { + padding: 9px; } + .datemenu-today-button .day-label { + font-weight: bold; } + +.calendar { + margin-top: 0; + padding: 0; } + .calendar .calendar-month-header .calendar-change-month-back StIcon, + .calendar .calendar-month-header .calendar-change-month-forward StIcon { + icon-size: 1.091em; } + .calendar .calendar-month-header .calendar-month-label { + color: #222226 !important; + padding: 8px 0; + width: 10em; + border-radius: 999px; + text-align: center; } + .calendar .calendar-month-header .pager-button { + height: 2.6em; + width: 2.6em; + padding: 0; } + .calendar .calendar-day { + border-radius: 999px; + height: 3em; + width: 3em; + margin: 2px; + padding: 0; + font-weight: bold; + text-align: center; } + .calendar .calendar-day.calendar-weekend { + color: #78787b; } + .calendar .calendar-day.calendar-other-month { + color: rgba(34, 34, 38, 0.5); + font-weight: normal; } + .calendar .calendar-day.calendar-other-month.calendar-weekend { + color: rgba(34, 34, 38, 0.5); } + .calendar .calendar-day.calendar-today { + color: -st-accent-fg-color !important; } + .calendar .calendar-day.calendar-today.calendar-day-with-events { + background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg") !important; } + .calendar .calendar-day.calendar-day-with-events { + background-image: url("resource:///org/gnome/shell/theme/calendar-today-light.svg"); + background-size: contain; } + .calendar .calendar-day-heading { + font-weight: bold; + text-align: center; + margin: 4px; + padding: 3px 6px; + border-radius: 8px; } + .calendar .calendar-week-number { + font-weight: bold; + font-feature-settings: "tnum"; + text-align: center; + margin: 6px; + padding: 0 6px; + border-radius: 4px; + background-color: rgba(120, 120, 123, 0.2); + color: #78787b; } + +.events-button .events-box .events-title { + color: #6b6b6e; + padding-bottom: 6px; } + +.events-button .events-box .events-list { + spacing: 6px; } + .events-button .events-box .events-list .event-box { + spacing: 6px; + border-radius: 8px; } + .events-button .events-box .events-list .event-box .event-time { + color: #6b6b6e; } + .events-button .events-box .events-list .event-placeholder { + color: #6b6b6e; + font-style: italic; } + +.world-clocks-button .world-clocks-header { + color: #6b6b6e; } + .world-clocks-button .world-clocks-header.no-world-clocks { + color: #222226; } + +.world-clocks-button .world-clocks-grid { + spacing-rows: 6px; + spacing-columns: 12px; } + .world-clocks-button .world-clocks-grid .world-clocks-time { + font-weight: bold; } + .world-clocks-button .world-clocks-grid .world-clocks-time:ltr { + text-align: right; } + .world-clocks-button .world-clocks-grid .world-clocks-time:rtl { + text-align: left; } + .world-clocks-button .world-clocks-grid .world-clocks-timezone { + color: #6b6b6e; } + +.weather-button .weather-box { + spacing: 6px; } + .weather-button .weather-box .weather-header-box { + spacing: 6px; } + .weather-button .weather-box .weather-header-box .weather-header { + color: #6b6b6e; } + .weather-button .weather-box .weather-header-box .weather-header.no-location { + color: #222226; } + .weather-button .weather-box .weather-header-box .weather-header.location { + font-weight: normal; } + .weather-button .weather-box .weather-grid { + spacing-rows: 6px; + spacing-columns: 12px; } + .weather-button .weather-box .weather-grid .weather-forecast-time { + padding-top: 6px; + padding-bottom: 6px; } + .weather-button .weather-box .weather-grid .weather-forecast-icon { + icon-size: 2.182em; + margin-bottom: 4px; } + .weather-button .weather-box .weather-grid .weather-forecast-temp { + font-weight: bold; } + +/* Message List */ +.message-list { + width: 29em; + border: solid rgba(34, 34, 38, 0.15); } + .message-list:ltr { + margin-left: 0; + margin-right: 4px; + padding-right: 6px; + border-right-width: 1px; } + .message-list:rtl { + margin-right: 0; + margin-left: 4px; + padding-left: 6px; + border-left-width: 1px; } + .message-list .message-list-placeholder { + color: rgba(34, 34, 38, 0.45); } + .message-list .message-list-placeholder > StIcon { + icon-size: 96px; + margin-bottom: 12px; + -st-icon-style: symbolic; } + +.message-view { + -st-vfade-offset: 68px; } + .message-view:ltr { + margin-right: 12px; } + .message-view:rtl { + margin-left: 12px; } + .message-view .message { + margin-bottom: 12px !important; + border-radius: 18px; } + +.message-list-controls { + padding: 12px; + padding-bottom: 9px; + spacing: 6px; } + .message-list-controls .message-list-clear-button { + border-radius: 999px; } + +.message-notification-group { + spacing: 12px; } + .message-notification-group .message-group-header { + padding: 6px; } + .message-notification-group .message-group-header .message-group-title { + margin: 0 4px; } + .message-notification-group .message-collapse-button { + color: #222226; + background-color: rgba(34, 34, 38, 0.2); + padding: 4px !important; + border: 4px transparent solid; } + .message-notification-group .message-collapse-button:hover { + background-color: rgba(34, 34, 38, 0.3); } + .message-notification-group .message-collapse-button:active { + background-color: rgba(34, 34, 38, 0.2); } + +.message { + padding: 6px; + margin: 0; + border-radius: 16px; + background-color: #ffffff; } + .message:second-in-stack { + background-color: whitesmoke; + box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.03); } + .message:lower-in-stack { + background-color: #ededed; + box-shadow: none; + border-color: #e6e6e6; } + .message .message-header { + spacing: 6px; + color: #6b6b6e; + padding: 0 6px; } + .message .message-header:ltr { + padding-right: 0; } + .message .message-header:rtl { + padding-left: 0; } + .message .message-header .message-source-icon { + icon-size: 1.091em; + -st-icon-style: symbolic; } + .message .message-header .message-header-content { + spacing: 6px; + min-height: 1.637em; + padding-bottom: 6px; } + .message .message-header .message-header-content .message-source-title { + font-weight: bold; } + .message .message-header .message-header-content .event-time { + color: #6b6b6e; + padding-bottom: 0.068em; } + .message .message-header .message-header-content .event-time:ltr { + text-align: right; } + .message .message-header .message-header-content .event-time:rtl { + text-align: left; } + .message .message-header .message-expand-button, + .message .message-header .message-close-button { + border-radius: 999px; + color: #222226; } + .message .message-header .message-expand-button { + padding: 6px; } + .message .message-header .message-close-button { + margin: 3px; + padding: 6px; } + .message .message-box { + padding: 6px; + margin-top: 0; + spacing: 6px; } + .message .message-box .message-icon { + icon-size: 48px; } + .message .message-box .message-icon:ltr { + margin-right: 6px; } + .message .message-box .message-icon:rtl { + margin-left: 6px; } + .message .message-box .message-icon.message-themed-icon { + border-radius: 999px; + background-color: rgba(34, 34, 38, 0.07); + icon-size: 1.091em; + min-width: 48px; + min-height: 48px; } + .message .message-box:first-child { + margin-top: 12px; } + .message .message-box .message-content { + spacing: 4px; } + .message .message-box .message-content .message-title { + font-weight: bold; } + .message .message-action-bin { + padding: 4px; + spacing: 6px; } + .message .message-action-bin * { + margin: 0 4px; } + .message .message-action-bin *:first-child:ltr { + margin-left: 0; } + .message .message-action-bin *:first-child:rtl { + margin-right: 0; } + .message .message-action-bin *:last-child:ltr { + margin-right: 0; } + .message .message-action-bin *:last-child:rtl { + margin-left: 0; } + +.url-highlighter { + link-color: st-darken(-st-accent-color, 10%); } + +/* Media Controls */ +.message-media-control { + padding: 0 18px; + border-radius: 8px; + color: #222226; + border: 1px solid transparent; } + .message-media-control:hover { + background-color: #efeff2; + color: #222226; } + .message-media-control:active { + background-color: #e9e9ed; + color: #222226; } + .message-media-control:insensitive { + color: #858588; } + .message-media-control StIcon { + icon-size: 16px; } + +.media-message .message-icon { + border-radius: 8px !important; } + .media-message .message-icon.message-themed-icon { + icon-size: 32px !important; } + +.candidate-popup-content { + padding: 6px; + spacing: 6px; + border-radius: 12px; } + +.candidate-index { + padding: 0; + padding-right: 6px; + color: #78787b; } + +.candidate-box { + padding: 6px 12px 6px 12px; + border-radius: 8px; } + .candidate-box:selected { + background-color: -st-accent-color; + color: -st-accent-fg-color; } + .candidate-box:hover { + background-color: #e1e1e7; + color: #0c0c0e; } + +.candidate-page-button-box { + height: 2em; } + .vertical .candidate-page-button-box { + padding-top: 12px; } + .horizontal .candidate-page-button-box { + padding-left: 12px; } + +.candidate-page-button { + padding: 6px; } + .candidate-page-button StIcon { + icon-size: 16px; } + +.candidate-page-button-previous { + border-radius: 8px 0px 0px 8px; + border-right-width: 0; + box-shadow: none; } + +.candidate-page-button-next { + border-radius: 0px 8px 8px 0px; + box-shadow: none; } + +/* Notifications & Message Tray */ +.notification-banner { + min-height: 64px; + width: 34em; + box-shadow: 0 2px 4px 2px rgba(0, 0, 0, 0.05); + border-radius: 16px; + margin: 4px; } + +.notification-buttons-bin { + spacing: 0; } + +/* Modal Dialogs */ +.modal-dialog { + background-color: #fafafb; + border-radius: 18px; + padding: 24px; + spacing: 18px; + box-shadow: 0 12px 8px 12px rgba(0, 0, 0, 0.03); } + .modal-dialog .modal-dialog-content-box { + padding-top: 12px; + spacing: 18px; + max-width: 28em; } + .modal-dialog .modal-dialog-button-box { + padding-top: 6px; } + +.dialog-list { + spacing: 18px; } + .dialog-list .dialog-list-title { + text-align: center; } + .dialog-list .dialog-list-scrollview { + max-height: 200px; } + .dialog-list .dialog-list-box { + spacing: 1em; } + .dialog-list .dialog-list-box .dialog-list-item { + spacing: 1em; } + .dialog-list .dialog-list-box .dialog-list-item .dialog-list-item-title { + font-weight: bold; } + .dialog-list .dialog-list-box .dialog-list-item .dialog-list-item-description { + color: #161619; } + +/* End Session Dialog */ +.end-session-dialog { + width: 24em; } + .end-session-dialog .end-session-dialog-battery-warning, + .end-session-dialog .dialog-list-title { + color: #e5a50a; + background-color: rgba(229, 165, 10, 0.1); + padding: 9px; + border-radius: 8px; + margin: 4px 0; } + +/* Message Dialog */ +.message-dialog-content { + spacing: 18px; } + .message-dialog-content .message-dialog-title { + text-align: center; } + .message-dialog-content .message-dialog-description { + text-align: center; } + +/* Run Dialog */ +.run-dialog { + width: 24em; + padding-bottom: 6px; } + .run-dialog .run-dialog-entry { + padding: 12px 9px; } + .run-dialog .run-dialog-description { + color: black; } + +/* Password or Authentication Dialog */ +.prompt-dialog { + width: 28em; } + .prompt-dialog .prompt-dialog-password-grid { + spacing-rows: 8px; + spacing-columns: 4px; } + .prompt-dialog .prompt-dialog-password-grid .prompt-dialog-password-entry { + width: auto; } + .prompt-dialog .prompt-dialog-password-grid .prompt-dialog-password-entry:ltr { + margin-left: 20px; } + .prompt-dialog .prompt-dialog-password-grid .prompt-dialog-password-entry:rtl { + margin-right: 20px; } + .prompt-dialog .prompt-dialog-password-layout { + spacing: 8px; } + .prompt-dialog .prompt-dialog-password-entry { + width: 20em; + padding: 12px 9px; } + .prompt-dialog .prompt-dialog-error-label, + .prompt-dialog .prompt-dialog-info-label, + .prompt-dialog .prompt-dialog-null-label { + text-align: center; + padding: 9px; + border-radius: 8px; + margin: 4px 0; } + .prompt-dialog .prompt-dialog-error-label { + color: #e5a50a; + background-color: rgba(229, 165, 10, 0.1); } + .prompt-dialog .prompt-dialog-info-label { + color: #222226; + background-color: rgba(34, 34, 38, 0.1); } + +/* Polkit Dialog */ +.polkit-dialog-user-layout { + text-align: center; + spacing: 8px; + margin-bottom: 6px; } + .polkit-dialog-user-layout .polkit-dialog-user-root-label { + color: #e5a50a; } + +/* Audio selection dialog */ +.audio-device-selection-dialog { + min-width: 24em; } + .audio-device-selection-dialog .audio-selection-box { + spacing: 12px; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device { + color: #222226; + background-color: #fafafb; + background-color: transparent; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(250, 250, 251, 0.25), 5%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(#fafafb, 7%), 5%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:hover { + color: #222226; + background-color: st-darken(#fafafb, 7%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:active { + color: #222226; + background-color: st-darken(#fafafb, 9%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:active:hover { + background-color: st-darken(st-darken(#fafafb, 9%), 7%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:active:focus { + background-color: st-mix(-st-accent-color, st-darken(#fafafb, 9%), 5%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:highlighted, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:selected, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:checked { + color: #222226; + background-color: st-darken(#fafafb, 8%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:highlighted:hover, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:selected:hover, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:checked:hover { + background-color: st-darken(st-darken(#fafafb, 8%), 7%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:highlighted:active, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:selected:active, .audio-device-selection-dialog .audio-selection-box .audio-selection-device:checked:active { + background-color: st-darken(st-darken(#fafafb, 8%), 9%); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:insensitive { + color: st-transparentize(#222226, 0.6); + background-color: #fafafb; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device .audio-selection-device-box { + padding: 12px; + spacing: 12px; } + .audio-device-selection-dialog .audio-selection-box .audio-selection-device .audio-selection-device-icon { + icon-size: 64px; } + +/* Welcome dialog */ +.welcome-dialog-image { + background-image: url("resource:///org/gnome/shell/theme/gnome-shell-start.svg"); + background-size: contain; + /* Reasonable maximum dimensions */ + height: 300px; + width: 300px; } + +/* Access portal dialog */ +.access-dialog { + text-align: center; } + +/* OSD */ +.osd-window { + text-align: center; + font-weight: bold; + spacing: 12px; + padding: 12px 18px; + margin-bottom: 4em; } + .osd-window > * { + spacing: 8px; } + .osd-window StIcon { + icon-size: 32px; } + .osd-window StLabel:ltr { + margin-right: 6px; } + .osd-window StLabel:rtl { + margin-left: 6px; } + .osd-window .level { + margin-bottom: 4px; + min-width: 160px; + -barlevel-height: 6px; + -barlevel-background-color: rgba(255, 255, 255, 0.3); + -barlevel-active-background-color: #ffffff; + -barlevel-overdrive-color: #e01b24; + -barlevel-overdrive-separator-width: 3px; } + .osd-window .level:first-child { + margin-bottom: 0; } + .osd-window .level:ltr { + margin-right: 6px; } + .osd-window .level:rtl { + margin-left: 6px; } + +.osd-monitor-label, .osd-break-countdown-label { + background-color: -st-accent-color; + color: -st-accent-fg-color; + border-radius: 16px; + font-size: 3em; + font-weight: bold; + font-feature-settings: "tnum"; + margin: 12px; + padding: 12px; + text-align: center; + min-width: 1.5em; } + +/* Pad OSD */ +.pad-osd-window { + padding: 32px; + background-color: rgba(0, 0, 0, 0.8); } + .pad-osd-window .pad-osd-title-box { + spacing: 12px; } + .pad-osd-window .pad-osd-title-menu-box { + spacing: 6px; } + +.combo-box-label { + width: 15em; } + +/* App Switcher */ +.switcher-popup { + padding: 0; + spacing: 24px; } + +.switcher-list { + padding: 12px; + border-radius: 28px; + box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.05); } + .switcher-list .switcher-list-item-container { + spacing: 12px; } + .switcher-list .item-box { + color: #ffffff; + background-color: #2e2e33; + background-color: transparent; } + .switcher-list .item-box:focus { + color: #ffffff; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(46, 46, 51, 0.25), 5%); } + .switcher-list .item-box:focus:hover { + background-color: st-mix(-st-accent-color, st-lighten(#2e2e33, 7%), 5%); } + .switcher-list .item-box:hover { + color: #ffffff; + background-color: st-lighten(#2e2e33, 7%); } + .switcher-list .item-box:active { + color: #ffffff; + background-color: st-lighten(#2e2e33, 9%); } + .switcher-list .item-box:active:hover { + background-color: st-lighten(st-lighten(#2e2e33, 9%), 7%); } + .switcher-list .item-box:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(#2e2e33, 9%), 5%); } + .switcher-list .item-box:highlighted, .switcher-list .item-box:selected, .switcher-list .item-box:checked { + color: #ffffff; + background-color: st-lighten(#2e2e33, 8%); } + .switcher-list .item-box:highlighted:hover, .switcher-list .item-box:selected:hover, .switcher-list .item-box:checked:hover { + background-color: st-lighten(st-lighten(#2e2e33, 8%), 7%); } + .switcher-list .item-box:highlighted:active, .switcher-list .item-box:selected:active, .switcher-list .item-box:checked:active { + background-color: st-lighten(st-lighten(#2e2e33, 8%), 9%); } + .switcher-list .item-box:insensitive { + color: st-transparentize(#ffffff, 0.6); + background-color: #2e2e33; } + .switcher-list .item-box:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + .switcher-list .item-box:hover { + background: none; } + .switcher-list .item-box:selected { + background-color: rgba(255, 255, 255, 0.2); } + .switcher-list .separator { + width: 1px; + background: rgba(34, 34, 38, 0.15); } + .switcher-list .thumbnail-box { + padding: 2px; + spacing: 6px; } + .switcher-list .thumbnail { + width: 256px; + border-radius: 8px; } + +.switcher-arrow { + border-color: rgba(255, 255, 255, 0.8); + color: rgba(255, 255, 255, 0.8); } + .switcher-arrow:highlighted { + border-color: #ffffff; + color: #ffffff; } + +.input-source-switcher-symbol { + font-size: 34pt; + width: 96px; + height: 96px; } + +.cycler-highlight { + border: 5px solid -st-accent-color; } + +/* Workspace Switcher */ +.workspace-switcher { + margin-bottom: 4em; + spacing: 12px; + padding: 12px 18px; } + +.ws-switcher-indicator { + background-color: rgba(255, 255, 255, 0.5); + padding: 2.6666666667px; + margin: 13.3333333333px; + border-radius: 32px; } + .ws-switcher-indicator:active { + background-color: #ffffff; + padding: 5.3333333333px; + margin: 10.6666666667px; } + +.screenshot-ui-panel { + border-radius: 32px; + padding: 18px; + padding-bottom: 12px; + margin-bottom: 4em; + spacing: 12px; } + +.screenshot-ui-close-button { + padding: 6px !important; + margin-top: 12px; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05); } + .screenshot-ui-close-button.left { + margin-left: 12px; } + .screenshot-ui-close-button.right { + margin-right: 12px; } + +.screenshot-ui-type-button { + min-width: 48px; + padding: 12px 18px; + border-radius: 14px; } + .screenshot-ui-type-button .icon-label-button-container { + spacing: 0.409em; } + .screenshot-ui-type-button .icon-label-button-container > StIcon { + icon-size: 32px; } + +.screenshot-ui-capture-button { + width: 32px; + height: 32px; + border-radius: 999px; + border: 4px #ffffff; + padding: 4px; } + .screenshot-ui-capture-button .screenshot-ui-capture-button-circle { + background-color: #ffffff; + transition-duration: 200ms; + border-radius: 999px; } + .screenshot-ui-capture-button .screenshot-ui-capture-button-circle:hover, .screenshot-ui-capture-button .screenshot-ui-capture-button-circle:focus { + background-color: #e1e1e7; } + .screenshot-ui-capture-button:hover .screenshot-ui-capture-button-circle, .screenshot-ui-capture-button:focus .screenshot-ui-capture-button-circle { + background-color: #cccccc; } + .screenshot-ui-capture-button:active .screenshot-ui-capture-button-circle { + background-color: gray; } + .screenshot-ui-capture-button:cast .screenshot-ui-capture-button-circle { + background-color: #c01c28; } + .screenshot-ui-capture-button:cast:hover .screenshot-ui-capture-button-circle, .screenshot-ui-capture-button:cast:focus .screenshot-ui-capture-button-circle { + background-color: #d61f2d; } + .screenshot-ui-capture-button:cast:active .screenshot-ui-capture-button-circle { + background-color: #a11722; } + +.screenshot-ui-shot-cast-container { + background-color: rgba(255, 255, 255, 0.1); + border-radius: 999px; + padding: 3px; + spacing: 3px; } + +.screenshot-ui-shot-cast-button { + padding: 6px 12px; + background-color: transparent; + border-radius: 999px; } + .screenshot-ui-shot-cast-button > StIcon { + icon-size: 16px; } + .screenshot-ui-shot-cast-button:hover, .screenshot-ui-shot-cast-button:focus { + background-color: rgba(255, 255, 255, 0.2); } + .screenshot-ui-shot-cast-button:active { + background-color: rgba(255, 255, 255, 0.5); } + .screenshot-ui-shot-cast-button:checked { + background-color: #ffffff; + color: #2e2e33; } + .screenshot-ui-shot-cast-button:insensitive { + color: rgba(255, 255, 255, 0.5); } + +.screenshot-ui-area-indicator-shade { + background-color: rgba(0, 0, 0, 0.3); } + +.screenshot-ui-area-selector .screenshot-ui-area-indicator-shade { + background-color: rgba(0, 0, 0, 0.5); } + +.screenshot-ui-area-selector .screenshot-ui-area-indicator-selection { + border: 2px white; } + +.screenshot-ui-area-selector-handle { + border-radius: 999px; + background-color: white; + box-shadow: 0 1px 3px 2px rgba(0, 0, 0, 0.05); + width: 24px; + height: 24px; } + +.screenshot-ui-window-selector { + background-color: #222226; } + .screenshot-ui-window-selector .screenshot-ui-window-selector-window-container { + margin: 100px; } + .screenshot-ui-window-selector:primary-monitor .screenshot-ui-window-selector-window-container { + margin-bottom: 200px; } + +.screenshot-ui-window-selector-window-border { + transition-duration: 200ms; + border-radius: 16px; + border: 6px transparent; } + +.screenshot-ui-window-selector-check { + transition-duration: 200ms; + color: transparent; + border-radius: 999px; + border-width: 12px; + icon-size: 24px; } + +.screenshot-ui-window-selector-window:hover .screenshot-ui-window-selector-window-border { + border-color: st-darken(-st-accent-color, 15%); } + +.screenshot-ui-window-selector-window:checked .screenshot-ui-window-selector-window-border { + border-color: -st-accent-color; + background-color: st-transparentize(-st-accent-color, 0.8); } + +.screenshot-ui-window-selector-window:checked .screenshot-ui-window-selector-check { + color: -st-accent-fg-color; + background-color: -st-accent-color; } + +.screenshot-ui-screen-selector { + transition-duration: 200ms; + background-color: rgba(0, 0, 0, 0.5); } + .screenshot-ui-screen-selector:hover { + background-color: rgba(0, 0, 0, 0.3); } + .screenshot-ui-screen-selector:active { + background-color: rgba(0, 0, 0, 0.7); } + .screenshot-ui-screen-selector:checked { + background-color: transparent; + border: 2px white; } + +.screenshot-ui-tooltip { + text-align: center; + -y-offset: 24px; } + +/* Top Bar */ +#panel { + background-color: #fafafb; + font-weight: bold; + height: 2.2em; + transition-duration: 250ms; + box-shadow: inset 0 -0.5px 0 0 rgba(34, 34, 38, 0.1); } + #panel .panel-button { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #222226; + box-shadow: inset 0 0 0 100px transparent; + -natural-hpadding: 12px; + -minimum-hpadding: 6px; } + #panel .panel-button:focus, #panel .panel-button:hover { + box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.17); } + #panel .panel-button:active, #panel .panel-button:checked { + box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.28); } + #panel .panel-button:active:hover, #panel .panel-button:checked:hover { + box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.32); } + #panel .panel-button .system-status-icon { + icon-size: 1.091em; + padding: 0 6px; + margin: 0 4px; } + #panel .panel-button .panel-status-indicators-box { + spacing: 4px; } + #panel .panel-button .panel-status-indicators-box > .system-status-icon { + padding: 0; } + #panel .panel-button#panelActivities StBoxLayout { + padding: 0 0.2045em; + spacing: 5px; } + #panel .panel-button#panelActivities .workspace-dot { + border-radius: 999px; + min-width: 0.5455em; + min-height: 0.5455em; + background-color: #222226; } + #panel .panel-button.screen-recording-indicator StBoxLayout, #panel .panel-button.screen-sharing-indicator StBoxLayout { + spacing: 0.409em; } + #panel .panel-button.screen-recording-indicator StIcon, #panel .panel-button.screen-sharing-indicator StIcon { + icon-size: 1.091em; } + #panel .panel-button.screen-recording-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #c01c28; } + #panel .panel-button.screen-recording-indicator:focus, #panel .panel-button.screen-recording-indicator:hover { + box-shadow: inset 0 0 0 100px #aa1923; } + #panel .panel-button.screen-recording-indicator:active, #panel .panel-button.screen-recording-indicator:checked { + box-shadow: inset 0 0 0 100px #981620; } + #panel .panel-button.screen-recording-indicator:active:hover, #panel .panel-button.screen-recording-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #8f151e; } + #panel .panel-button.screen-sharing-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #e66100; } + #panel .panel-button.screen-sharing-indicator:focus, #panel .panel-button.screen-sharing-indicator:hover { + box-shadow: inset 0 0 0 100px #cd5600; } + #panel .panel-button.screen-sharing-indicator:active, #panel .panel-button.screen-sharing-indicator:checked { + box-shadow: inset 0 0 0 100px #b84e00; } + #panel .panel-button.screen-sharing-indicator:active:hover, #panel .panel-button.screen-sharing-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #ae4900; } + #panel .panel-button.clock-display { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #222226; + box-shadow: inset 0 0 0 100px transparent; + background: none !important; + box-shadow: none !important; + border: none !important; } + #panel .panel-button.clock-display:focus, #panel .panel-button.clock-display:hover { + box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.17); } + #panel .panel-button.clock-display:active, #panel .panel-button.clock-display:checked { + box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.28); } + #panel .panel-button.clock-display:active:hover, #panel .panel-button.clock-display:checked:hover { + box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.32); } + #panel .panel-button.clock-display .clock { + transition-duration: 150ms; + border: 3px solid transparent; + border-radius: 999px; } + #panel .panel-button.clock-display:focus .clock, #panel .panel-button.clock-display:hover .clock { + box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.17); } + #panel .panel-button.clock-display:active .clock, #panel .panel-button.clock-display:checked .clock { + box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.28); } + #panel .panel-button.clock-display:active .clock:hover, #panel .panel-button.clock-display:checked .clock:hover { + box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.32); } + #panel .panel-button.clock-display .messages-indicator { + icon-size: 1.091em; } + #panel:overview, #panel.unlock-screen, #panel.login-screen { + background-color: transparent; } + #panel:overview .panel-button.screen-recording-indicator, #panel.unlock-screen .panel-button.screen-recording-indicator, #panel.login-screen .panel-button.screen-recording-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #c01c28; } + #panel:overview .panel-button.screen-recording-indicator:focus, #panel:overview .panel-button.screen-recording-indicator:hover, #panel.unlock-screen .panel-button.screen-recording-indicator:focus, #panel.unlock-screen .panel-button.screen-recording-indicator:hover, #panel.login-screen .panel-button.screen-recording-indicator:focus, #panel.login-screen .panel-button.screen-recording-indicator:hover { + box-shadow: inset 0 0 0 100px #aa1923; } + #panel:overview .panel-button.screen-recording-indicator:active, #panel:overview .panel-button.screen-recording-indicator:checked, #panel.unlock-screen .panel-button.screen-recording-indicator:active, #panel.unlock-screen .panel-button.screen-recording-indicator:checked, #panel.login-screen .panel-button.screen-recording-indicator:active, #panel.login-screen .panel-button.screen-recording-indicator:checked { + box-shadow: inset 0 0 0 100px #981620; } + #panel:overview .panel-button.screen-recording-indicator:active:hover, #panel:overview .panel-button.screen-recording-indicator:checked:hover, #panel.unlock-screen .panel-button.screen-recording-indicator:active:hover, #panel.unlock-screen .panel-button.screen-recording-indicator:checked:hover, #panel.login-screen .panel-button.screen-recording-indicator:active:hover, #panel.login-screen .panel-button.screen-recording-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #8f151e; } + #panel:overview .panel-button.screen-sharing-indicator, #panel.unlock-screen .panel-button.screen-sharing-indicator, #panel.login-screen .panel-button.screen-sharing-indicator { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px #e66100; } + #panel:overview .panel-button.screen-sharing-indicator:focus, #panel:overview .panel-button.screen-sharing-indicator:hover, #panel.unlock-screen .panel-button.screen-sharing-indicator:focus, #panel.unlock-screen .panel-button.screen-sharing-indicator:hover, #panel.login-screen .panel-button.screen-sharing-indicator:focus, #panel.login-screen .panel-button.screen-sharing-indicator:hover { + box-shadow: inset 0 0 0 100px #cd5600; } + #panel:overview .panel-button.screen-sharing-indicator:active, #panel:overview .panel-button.screen-sharing-indicator:checked, #panel.unlock-screen .panel-button.screen-sharing-indicator:active, #panel.unlock-screen .panel-button.screen-sharing-indicator:checked, #panel.login-screen .panel-button.screen-sharing-indicator:active, #panel.login-screen .panel-button.screen-sharing-indicator:checked { + box-shadow: inset 0 0 0 100px #b84e00; } + #panel:overview .panel-button.screen-sharing-indicator:active:hover, #panel:overview .panel-button.screen-sharing-indicator:checked:hover, #panel.unlock-screen .panel-button.screen-sharing-indicator:active:hover, #panel.unlock-screen .panel-button.screen-sharing-indicator:checked:hover, #panel.login-screen .panel-button.screen-sharing-indicator:active:hover, #panel.login-screen .panel-button.screen-sharing-indicator:checked:hover { + box-shadow: inset 0 0 0 100px #ae4900; } + #panel.unlock-screen .panel-button, #panel.login-screen .panel-button { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; } + #panel.unlock-screen .panel-button:focus, #panel.unlock-screen .panel-button:hover, #panel.login-screen .panel-button:focus, #panel.login-screen .panel-button:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel.unlock-screen .panel-button:active, #panel.unlock-screen .panel-button:checked, #panel.login-screen .panel-button:active, #panel.login-screen .panel-button:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel.unlock-screen .panel-button:active:hover, #panel.unlock-screen .panel-button:checked:hover, #panel.login-screen .panel-button:active:hover, #panel.login-screen .panel-button:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel.unlock-screen .panel-button.clock-display, #panel.login-screen .panel-button.clock-display { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #ffffff; + box-shadow: inset 0 0 0 100px transparent; + background: none !important; + box-shadow: none !important; + border: none !important; } + #panel.unlock-screen .panel-button.clock-display:focus, #panel.unlock-screen .panel-button.clock-display:hover, #panel.login-screen .panel-button.clock-display:focus, #panel.login-screen .panel-button.clock-display:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel.unlock-screen .panel-button.clock-display:active, #panel.unlock-screen .panel-button.clock-display:checked, #panel.login-screen .panel-button.clock-display:active, #panel.login-screen .panel-button.clock-display:checked { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel.unlock-screen .panel-button.clock-display:active:hover, #panel.unlock-screen .panel-button.clock-display:checked:hover, #panel.login-screen .panel-button.clock-display:active:hover, #panel.login-screen .panel-button.clock-display:checked:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel.unlock-screen .panel-button.clock-display .clock, #panel.login-screen .panel-button.clock-display .clock { + transition-duration: 150ms; + border: 3px solid transparent; + border-radius: 999px; } + #panel.unlock-screen .panel-button.clock-display:focus .clock, #panel.unlock-screen .panel-button.clock-display:hover .clock, #panel.login-screen .panel-button.clock-display:focus .clock, #panel.login-screen .panel-button.clock-display:hover .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17); } + #panel.unlock-screen .panel-button.clock-display:active .clock, #panel.unlock-screen .panel-button.clock-display:checked .clock, #panel.login-screen .panel-button.clock-display:active .clock, #panel.login-screen .panel-button.clock-display:checked .clock { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28); } + #panel.unlock-screen .panel-button.clock-display:active .clock:hover, #panel.unlock-screen .panel-button.clock-display:checked .clock:hover, #panel.login-screen .panel-button.clock-display:active .clock:hover, #panel.login-screen .panel-button.clock-display:checked .clock:hover { + box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32); } + #panel:overview .panel-button { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px transparent; } + #panel:overview .panel-button:focus, #panel:overview .panel-button:hover { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.17); } + #panel:overview .panel-button:active, #panel:overview .panel-button:checked { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.28); } + #panel:overview .panel-button:active:hover, #panel:overview .panel-button:checked:hover { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.32); } + #panel:overview .panel-button#panelActivities .workspace-dot { + background-color: #fafafb; } + #panel:overview .panel-button.clock-display { + transition-duration: 150ms; + border: 3px solid transparent; + background-color: transparent; + border-radius: 999px; + font-weight: bold; + color: #fafafb; + box-shadow: inset 0 0 0 100px transparent; + background: none !important; + box-shadow: none !important; + border: none !important; } + #panel:overview .panel-button.clock-display:focus, #panel:overview .panel-button.clock-display:hover { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.17); } + #panel:overview .panel-button.clock-display:active, #panel:overview .panel-button.clock-display:checked { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.28); } + #panel:overview .panel-button.clock-display:active:hover, #panel:overview .panel-button.clock-display:checked:hover { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.32); } + #panel:overview .panel-button.clock-display .clock { + transition-duration: 150ms; + border: 3px solid transparent; + border-radius: 999px; } + #panel:overview .panel-button.clock-display:focus .clock, #panel:overview .panel-button.clock-display:hover .clock { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.17); } + #panel:overview .panel-button.clock-display:active .clock, #panel:overview .panel-button.clock-display:checked .clock { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.28); } + #panel:overview .panel-button.clock-display:active .clock:hover, #panel:overview .panel-button.clock-display:checked .clock:hover { + box-shadow: inset 0 0 0 100px rgba(250, 250, 251, 0.32); } + #panel .panel-status-indicators-box { + spacing: 2px; } + #panel .power-status.panel-status-indicators-box { + spacing: 0; } + #panel .privacy-indicator { + color: #e66100; } + +.clock-display-box { + spacing: 2px; } + .clock-display-box .clock { + padding-left: 0.818em; + padding-right: 0.818em; } + +/* Activities Ripple */ +.ripple-box { + background-color: rgba(255, 255, 255, 0.2); + box-shadow: 0 0 2px 2px rgba(255, 255, 255, 0.2); + width: 52px; + height: 52px; + border-radius: 0 0 52px 0; } + .ripple-box:rtl { + border-radius: 0 0 0 52px; } + +.quick-settings { + padding: 18px; + border-radius: 36px; } + .quick-settings .icon-button, .quick-settings .login-dialog-button.a11y-button, .quick-settings .login-dialog-button.cancel-button, .quick-settings .login-dialog-button.switch-user-button, .quick-settings .login-dialog-button.login-dialog-session-list-button, .quick-settings .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .quick-settings .pager-button, .quick-settings .message-notification-group .message-collapse-button, .message-notification-group .quick-settings .message-collapse-button, .quick-settings .message .message-header .message-expand-button, .message .message-header .quick-settings .message-expand-button, + .quick-settings .message .message-header .message-close-button, + .message .message-header .quick-settings .message-close-button, .quick-settings .screenshot-ui-show-pointer-button, .quick-settings .button { + padding: 10.5px; } + +.quick-settings-grid { + spacing-rows: 12px; + spacing-columns: 12px; } + +.quick-toggle, .quick-toggle-has-menu { + border-radius: 999px; + min-width: 12em; + max-width: 12em; + min-height: 3.273em; } + +.quick-toggle { + /* Move padding into the box; this is to allow menu arrows + to extend to the border */ } + .quick-toggle > StBoxLayout { + spacing: 9px; } + .quick-toggle.button { + padding: 0; } + .quick-toggle > StBoxLayout { + padding: 0 12px; } + .quick-toggle:ltr > StBoxLayout { + padding-left: 15px; } + .quick-toggle:rtl > StBoxLayout { + padding-right: 15px; } + .quick-toggle .quick-toggle-subtitle { + font-weight: normal; } + .quick-toggle .quick-toggle-icon { + icon-size: 1.091em; } + +.quick-toggle-has-menu .quick-toggle { + min-width: auto; + max-width: auto; } + .quick-toggle-has-menu .quick-toggle:ltr { + border-radius: 999px 0 0 999px; } + .quick-toggle-has-menu .quick-toggle:ltr > StBoxLayout { + padding-right: 0.6135em; } + .quick-toggle-has-menu .quick-toggle:rtl { + border-radius: 0 999px 999px 0; } + .quick-toggle-has-menu .quick-toggle:rtl > StBoxLayout { + padding-left: 0.6135em; } + .quick-toggle-has-menu .quick-toggle:ltr:last-child { + border-radius: 999px; } + .quick-toggle-has-menu .quick-toggle:rtl:last-child { + border-radius: 999px; } + +.quick-toggle-has-menu .quick-toggle-menu-button { + padding: 0.409em 0.71575em; } + .quick-toggle-has-menu .quick-toggle-menu-button:ltr { + border-radius: 0 999px 999px 0; } + .quick-toggle-has-menu .quick-toggle-menu-button:rtl { + border-radius: 999px 0 0 999px; } + +.quick-toggle-has-menu .quick-toggle-separator { + width: 1px; } + +.quick-toggle-has-menu .quick-toggle-menu-button { + color: #222226; + background-color: st-mix(#222226, #ececf0, 12%); } + .quick-toggle-has-menu .quick-toggle-menu-button:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(#222226, #ececf0, 12%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#222226, #ececf0, 12%), 4%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:hover { + color: #222226; + background-color: st-darken(st-mix(#222226, #ececf0, 12%), 4%); } + .quick-toggle-has-menu .quick-toggle-menu-button:active { + color: #222226; + background-color: st-darken(st-mix(#222226, #ececf0, 12%), 9%); } + .quick-toggle-has-menu .quick-toggle-menu-button:active:hover { + background-color: st-darken(st-darken(st-mix(#222226, #ececf0, 12%), 9%), 4%); } + .quick-toggle-has-menu .quick-toggle-menu-button:active:focus { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#222226, #ececf0, 12%), 9%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked { + color: -st-accent-fg-color; + background-color: st-mix(-st-accent-color, #222226, 92%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:focus { + color: -st-accent-fg-color; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + box-shadow: inset 0 0 0 2px st-transparentize(st-darken(-st-accent-color, 20%), 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(-st-accent-color, #222226, 92%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(st-mix(-st-accent-color, #222226, 92%), 4%), 5%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:hover { + color: -st-accent-fg-color; + background-color: st-darken(st-mix(-st-accent-color, #222226, 92%), 4%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:active { + color: -st-accent-fg-color; + background-color: st-darken(st-mix(-st-accent-color, #222226, 92%), 9%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:active:hover { + background-color: st-darken(st-darken(st-mix(-st-accent-color, #222226, 92%), 9%), 4%); } + .quick-toggle-has-menu .quick-toggle-menu-button:checked:active:focus { + background-color: st-mix(-st-accent-color, st-darken(st-mix(-st-accent-color, #222226, 92%), 9%), 5%); } + +.quick-toggle-has-menu:checked .quick-toggle-separator { + background-color: st-mix(-st-accent-fg-color, -st-accent-color, 20%); } + +.quick-toggle-has-menu .quick-toggle-separator { + background-color: rgba(34, 34, 38, 0.25); } + +.quick-slider > StBoxLayout { + spacing: 6px; } + +.quick-slider .icon-button, .quick-slider .login-dialog-button.a11y-button, .quick-slider .login-dialog-button.cancel-button, .quick-slider .login-dialog-button.switch-user-button, .quick-slider .login-dialog-button.login-dialog-session-list-button, .quick-slider .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .quick-slider .pager-button, .quick-slider .message-notification-group .message-collapse-button, .message-notification-group .quick-slider .message-collapse-button, .quick-slider .message .message-header .message-expand-button, .message .message-header .quick-slider .message-expand-button, +.quick-slider .message .message-header .message-close-button, +.message .message-header .quick-slider .message-close-button, .quick-slider .screenshot-ui-show-pointer-button { + padding: 6px; } + +.quick-slider .slider-bin { + padding: 6px; + border-radius: 999px; } + .quick-slider .slider-bin:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(#222226, #fafafb, 12%), 5%); } + .quick-slider .slider-bin:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#222226, #fafafb, 12%), 4%), 5%); } + +.quick-toggle-menu { + border-radius: 24px; - margin: 12px 18px 0; } ++ margin: 12px 0 0; } + .quick-toggle-menu:insensitive { + color: #222226; + background-color: st-mix(#222226, #fafafb, 12%); } + .quick-toggle-menu .popup-menu-item > StIcon { + -st-icon-style: symbolic; + icon-size: 1.091em; } + .quick-toggle-menu .header { + spacing-rows: 3px; + spacing-columns: 12px; + padding-bottom: 12px; } + .quick-toggle-menu .header .icon { + icon-size: 1.6365em; + border-radius: 999px; + padding: 9px; + background-color: rgba(34, 34, 38, 0.2); } + .quick-toggle-menu .header .icon.active { + background-color: -st-accent-color; + color: -st-accent-fg-color; } + +.quick-settings-system-item > StBoxLayout { + spacing: 12px; } + +.quick-settings-system-item .power-item { + min-height: 0; + min-width: 0; } + .quick-settings-system-item .power-item:insensitive { + color: #222226; + background-color: st-mix(#222226, #fafafb, 12%); + background-color: transparent; } + +.nm-network-item .wireless-secure-icon { + icon-size: 0.5455em; } + +.bt-device-item .popup-menu-icon { + -st-icon-style: symbolic; } + +.bt-menu-placeholder.popup-menu-item { + text-align: center; + padding: 2em 4em; } + +.device-subtitle { + color: rgba(34, 34, 38, 0.5); } + +.keyboard-brightness-level { + spacing: 6px; } + +.background-apps-quick-toggle { + min-height: 2.728em; + background-color: transparent; } + .background-apps-quick-toggle StIcon { + icon-size: 1.091em !important; } + +.background-app-item .popup-menu-icon { + icon-size: 32px !important; + -st-icon-style: regular !important; } + +.background-app-item .icon-button, .background-app-item .login-dialog-button.a11y-button, .background-app-item .login-dialog-button.cancel-button, .background-app-item .login-dialog-button.switch-user-button, .background-app-item .login-dialog-button.login-dialog-session-list-button, .background-app-item .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .background-app-item .pager-button, .background-app-item .message-notification-group .message-collapse-button, .message-notification-group .background-app-item .message-collapse-button, .background-app-item .message .message-header .message-expand-button, .message .message-header .background-app-item .message-expand-button, +.background-app-item .message .message-header .message-close-button, +.message .message-header .background-app-item .message-close-button, .background-app-item .screenshot-ui-show-pointer-button { + padding: 6px; + background-color: rgba(34, 34, 38, 0.13); } + .background-app-item .icon-button:hover, .background-app-item .login-dialog-button.a11y-button:hover, .background-app-item .login-dialog-button.cancel-button:hover, .background-app-item .login-dialog-button.switch-user-button:hover, .background-app-item .login-dialog-button.login-dialog-session-list-button:hover, .background-app-item .calendar .calendar-month-header .pager-button:hover, .calendar .calendar-month-header .background-app-item .pager-button:hover, .background-app-item .message-notification-group .message-collapse-button:hover, .message-notification-group .background-app-item .message-collapse-button:hover, .background-app-item .message .message-header .message-expand-button:hover, .message .message-header .background-app-item .message-expand-button:hover, + .background-app-item .message .message-header .message-close-button:hover, + .message .message-header .background-app-item .message-close-button:hover, .background-app-item .screenshot-ui-show-pointer-button:hover { + background-color: rgba(34, 34, 38, 0.22); } + .background-app-item .icon-button:active, .background-app-item .login-dialog-button.a11y-button:active, .background-app-item .login-dialog-button.cancel-button:active, .background-app-item .login-dialog-button.switch-user-button:active, .background-app-item .login-dialog-button.login-dialog-session-list-button:active, .background-app-item .calendar .calendar-month-header .pager-button:active, .calendar .calendar-month-header .background-app-item .pager-button:active, .background-app-item .message-notification-group .message-collapse-button:active, .message-notification-group .background-app-item .message-collapse-button:active, .background-app-item .message .message-header .message-expand-button:active, .message .message-header .background-app-item .message-expand-button:active, + .background-app-item .message .message-header .message-close-button:active, + .message .message-header .background-app-item .message-close-button:active, .background-app-item .screenshot-ui-show-pointer-button:active { + background-color: rgba(34, 34, 38, 0.31); } + +.background-app-item .spinner { + padding: 6px; } + +.background-app-item.popup-inactive-menu-item { + color: #222226; } + +/* OVERVIEW */ +.secondary-monitor-workspaces { + spacing: 12px; } + +#overviewGroup { + background-color: #222226; } + +/* Window Picker */ +.window-picker { + spacing: 6px; } + +.window-close, .screenshot-ui-close-button { + background-color: rgba(63, 63, 70, 0.98); + color: #fafafb; + border-radius: 999px; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05); + padding: 3px; + height: 32px; + width: 32px; + transition-duration: 100ms; + border: 2px solid transparent; } + .window-close StIcon, .screenshot-ui-close-button StIcon { + icon-size: 24px; } + .window-close:hover, .screenshot-ui-close-button:hover { + background-color: rgba(80, 80, 89, 0.98); } + .window-close:active, .screenshot-ui-close-button:active { + background-color: rgba(94, 94, 105, 0.98); } + +.workspace-background { + border-radius: 30px; + background-color: rgba(3, 2, 1, 0); + box-shadow: 0 4px 16px 4px rgba(0, 0, 0, 0.05); } + +.search-entry { + border-radius: 999px; + margin-top: 12px; + margin-bottom: 6px; + width: 24em; } + .search-entry .search-entry-icon { + icon-size: 1.091em; + margin-top: 2px; + padding: 0 4px; } + +/* Search */ +#searchResults { + margin: 0 4px; } + +#searchResultsContent { + max-width: 1044px; } + +.search-section { + spacing: 18px; } + .search-section .search-section-separator { + height: 8px; + background-color: transparent; } + +.search-section-content { + background-color: #38383b; + color: #fafafb; + border-radius: 24px; + padding: 12px; + margin: 0 12px; + border: 2px solid transparent; } + +.list-search-result, .search-provider-icon { + color: #fafafb; + background-color: #38383b; + background-color: transparent; + border-radius: 13.2px; } + .list-search-result:focus, .search-provider-icon:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(56, 56, 59, 0.25), 5%); } + .list-search-result:focus:hover, .search-provider-icon:focus:hover { + background-color: st-mix(-st-accent-color, st-lighten(#38383b, 7%), 5%); } + .list-search-result:hover, .search-provider-icon:hover { + color: #fafafb; + background-color: st-lighten(#38383b, 7%); } + .list-search-result:active, .search-provider-icon:active { + color: #fafafb; + background-color: st-lighten(#38383b, 9%); } + .list-search-result:active:hover, .search-provider-icon:active:hover { + background-color: st-lighten(st-lighten(#38383b, 9%), 7%); } + .list-search-result:active:focus, .search-provider-icon:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(#38383b, 9%), 5%); } + .list-search-result:highlighted, .search-provider-icon:highlighted, .list-search-result:selected, .search-provider-icon:selected, .list-search-result:checked, .search-provider-icon:checked { + color: #fafafb; + background-color: st-lighten(#38383b, 8%); } + .list-search-result:highlighted:hover, .search-provider-icon:highlighted:hover, .list-search-result:selected:hover, .search-provider-icon:selected:hover, .list-search-result:checked:hover, .search-provider-icon:checked:hover { + background-color: st-lighten(st-lighten(#38383b, 8%), 7%); } + .list-search-result:highlighted:active, .search-provider-icon:highlighted:active, .list-search-result:selected:active, .search-provider-icon:selected:active, .list-search-result:checked:active, .search-provider-icon:checked:active { + background-color: st-lighten(st-lighten(#38383b, 8%), 9%); } + .list-search-result:insensitive, .search-provider-icon:insensitive { + color: st-transparentize(#fafafb, 0.6); + background-color: #38383b; } + .list-search-result:drop, .search-provider-icon:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + +.search-statusbox { + spacing: 24px; } + +.search-statustext { + color: rgba(250, 250, 251, 0.8); } + +.grid-search-results { + spacing: 30px; } + +.search-provider-icon:ltr { + margin-right: 4px; } + +.search-provider-icon:rtl { + margin-left: 4px; } + +.search-provider-icon .list-search-provider-content { + spacing: 12px; } + .search-provider-icon .list-search-provider-content .list-search-provider-details { + width: 120px; + color: #fafafb; } + +.list-search-results { + spacing: 6px; } + +.list-search-result .list-search-result-content { + spacing: 6px; } + +.list-search-result .list-search-result-title { + spacing: 12px; } + +.list-search-result .list-search-result-description { + color: #afafb1; } + +/* Dash */ +#dash { + padding-left: 6px; + padding-right: 6px; } + #dash .dash-background { + background-color: #38383b; + border-radius: 28px; + padding-top: 12px; + padding-bottom: 12px; + padding-left: 10px; + padding-right: 10px; } + #dash .dash-item-container .placeholder { + background-image: none; + background-size: contain; + height: 32px; } + #dash .dash-item-container .empty-dash-drop-target { + width: 32px; + height: 32px; } + #dash .dash-item-container .show-apps, + #dash .dash-item-container .overview-tile, + #dash .dash-item-container .grid-search-result { + margin: 0 2px; + padding-bottom: 12px; } + #dash .dash-item-container .show-apps .overview-icon, + #dash .dash-item-container .overview-tile .overview-icon, + #dash .dash-item-container .grid-search-result .overview-icon { + color: #fafafb; + background-color: #38383b; } + #dash .dash-item-container .show-apps:focus .overview-icon, + #dash .dash-item-container .overview-tile:focus .overview-icon, + #dash .dash-item-container .grid-search-result:focus .overview-icon { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(56, 56, 59, 0.25), 5%); } + #dash .dash-item-container .show-apps:focus .overview-icon:hover, + #dash .dash-item-container .overview-tile:focus .overview-icon:hover, + #dash .dash-item-container .grid-search-result:focus .overview-icon:hover { + background-color: st-mix(-st-accent-color, st-lighten(#38383b, 7%), 5%); } + #dash .dash-item-container .show-apps:hover .overview-icon, + #dash .dash-item-container .overview-tile:hover .overview-icon, + #dash .dash-item-container .grid-search-result:hover .overview-icon { + color: #fafafb; + background-color: st-lighten(#38383b, 7%); } + #dash .dash-item-container .show-apps:active .overview-icon, + #dash .dash-item-container .overview-tile:active .overview-icon, + #dash .dash-item-container .grid-search-result:active .overview-icon { + color: #fafafb; + background-color: st-lighten(#38383b, 9%); } + #dash .dash-item-container .show-apps:active .overview-icon:hover, + #dash .dash-item-container .overview-tile:active .overview-icon:hover, + #dash .dash-item-container .grid-search-result:active .overview-icon:hover { + background-color: st-lighten(st-lighten(#38383b, 9%), 7%); } + #dash .dash-item-container .show-apps:active .overview-icon:focus, + #dash .dash-item-container .overview-tile:active .overview-icon:focus, + #dash .dash-item-container .grid-search-result:active .overview-icon:focus { + background-color: st-mix(-st-accent-color, st-lighten(#38383b, 9%), 5%); } + #dash .dash-item-container .show-apps:checked .overview-icon, + #dash .dash-item-container .overview-tile:checked .overview-icon, + #dash .dash-item-container .grid-search-result:checked .overview-icon { + color: #fafafb; + background-color: st-lighten(#38383b, 8%); } + #dash .dash-item-container .show-apps:checked .overview-icon:hover, + #dash .dash-item-container .overview-tile:checked .overview-icon:hover, + #dash .dash-item-container .grid-search-result:checked .overview-icon:hover { + background-color: st-lighten(st-lighten(#38383b, 8%), 7%); } + #dash .dash-item-container .show-apps:checked .overview-icon:active, + #dash .dash-item-container .overview-tile:checked .overview-icon:active, + #dash .dash-item-container .grid-search-result:checked .overview-icon:active { + background-color: st-lighten(st-lighten(#38383b, 8%), 9%); } + #dash .dash-item-container .app-grid-running-dot { + offset-y: -12px; } + #dash .dash-separator { + width: 1px; + margin-left: 4px; + margin-right: 4px; + background-color: rgba(250, 250, 251, 0.1); } + #dash .dash-separator, + #dash .dash-background { + margin-bottom: 12px; } + +.dash-label { + -y-offset: 8px; } + +/* App Grid */ +.icon-grid { + row-spacing: 12px; + column-spacing: 12px; + max-row-spacing: 36px; + max-column-spacing: 36px; + page-padding-top: 24px; + page-padding-bottom: 24px; + page-padding-left: 18px; + page-padding-right: 18px; } + +/* App Icons */ +.overview-tile, .grid-search-result { + color: #fafafb; + background-color: #222226; + background-color: transparent; + border-radius: 24px; + padding: 12px; } + .overview-tile:focus, .grid-search-result:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(34, 34, 38, 0.25), 5%); } + .overview-tile:focus:hover, .grid-search-result:focus:hover { + background-color: st-mix(-st-accent-color, st-lighten(#222226, 7%), 5%); } + .overview-tile:hover, .grid-search-result:hover { + color: #fafafb; + background-color: st-lighten(#222226, 7%); } + .overview-tile:active, .grid-search-result:active { + color: #fafafb; + background-color: st-lighten(#222226, 9%); } + .overview-tile:active:hover, .grid-search-result:active:hover { + background-color: st-lighten(st-lighten(#222226, 9%), 7%); } + .overview-tile:active:focus, .grid-search-result:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(#222226, 9%), 5%); } + .overview-tile:highlighted, .grid-search-result:highlighted, .overview-tile:selected, .grid-search-result:selected, .overview-tile:checked, .grid-search-result:checked { + color: #fafafb; + background-color: st-lighten(#222226, 8%); } + .overview-tile:highlighted:hover, .grid-search-result:highlighted:hover, .overview-tile:selected:hover, .grid-search-result:selected:hover, .overview-tile:checked:hover, .grid-search-result:checked:hover { + background-color: st-lighten(st-lighten(#222226, 8%), 7%); } + .overview-tile:highlighted:active, .grid-search-result:highlighted:active, .overview-tile:selected:active, .grid-search-result:selected:active, .overview-tile:checked:active, .grid-search-result:checked:active { + background-color: st-lighten(st-lighten(#222226, 8%), 9%); } + .overview-tile:insensitive, .grid-search-result:insensitive { + color: st-transparentize(#fafafb, 0.6); + background-color: #222226; } + .overview-tile:drop, .grid-search-result:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + .overview-tile .overview-icon.overview-icon-with-label > StBoxLayout, .grid-search-result .overview-icon.overview-icon-with-label > StBoxLayout { + spacing: 6px; } + +.app-folder { + color: #fafafb; + background-color: st-mix(#fafafb, #222226, 12%); } + .app-folder:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(#fafafb, #222226, 12%), 5%); } + .app-folder:focus:hover { + background-color: st-mix(-st-accent-color, st-lighten(st-mix(#fafafb, #222226, 12%), 4%), 5%); } + .app-folder:hover { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 12%), 4%); } + .app-folder:active { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 12%), 9%); } + .app-folder:active:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 12%), 9%), 4%); } + .app-folder:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(st-mix(#fafafb, #222226, 12%), 9%), 5%); } + .app-folder:highlighted, .app-folder:selected, .app-folder:checked { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 12%), 8%); } + .app-folder:highlighted:hover, .app-folder:selected:hover, .app-folder:checked:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 12%), 8%), 4%); } + .app-folder:highlighted:active, .app-folder:selected:active, .app-folder:checked:active { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 12%), 8%), 9%); } + .app-folder:insensitive { + color: st-transparentize(#fafafb, 0.6); + background-color: st-darken(st-mix(#fafafb, #222226, 12%), 3%); } + .app-folder:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + +.app-grid-running-dot { + height: 5px; + width: 5px; + border-radius: 5px; + background-color: #fafafb; + offset-y: 6px; } + +.app-folder-dialog-container { + padding-top: 2.2em; } + +.app-folder-dialog { + width: 720px; + height: 720px; + border-radius: 64px; + background-color: #38383b; + color: #fafafb; + padding: 0 1px; + box-shadow: inset 0 0 0 1px rgba(250, 250, 251, 0.1); } + .app-folder-dialog .folder-name-container { + padding: 24px 36px; + padding-bottom: 0; } + .app-folder-dialog .folder-name-container .folder-name-entry { + width: 12em; } + .app-folder-dialog .icon-button, .app-folder-dialog .login-dialog-button.a11y-button, .app-folder-dialog .login-dialog-button.cancel-button, .app-folder-dialog .login-dialog-button.switch-user-button, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button, .app-folder-dialog .calendar .calendar-month-header .pager-button, .calendar .calendar-month-header .app-folder-dialog .pager-button, .app-folder-dialog .message-notification-group .message-collapse-button, .message-notification-group .app-folder-dialog .message-collapse-button, .app-folder-dialog .message .message-header .message-expand-button, .message .message-header .app-folder-dialog .message-expand-button, + .app-folder-dialog .message .message-header .message-close-button, + .message .message-header .app-folder-dialog .message-close-button, .app-folder-dialog .screenshot-ui-show-pointer-button { + color: #fafafb; + background-color: st-mix(#fafafb, #38383b, 12%); } + .app-folder-dialog .icon-button:hover, .app-folder-dialog .login-dialog-button.a11y-button:hover, .app-folder-dialog .login-dialog-button.cancel-button:hover, .app-folder-dialog .login-dialog-button.switch-user-button:hover, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:hover, .app-folder-dialog .calendar .calendar-month-header .pager-button:hover, .calendar .calendar-month-header .app-folder-dialog .pager-button:hover, .app-folder-dialog .message-notification-group .message-collapse-button:hover, .message-notification-group .app-folder-dialog .message-collapse-button:hover, .app-folder-dialog .message .message-header .message-expand-button:hover, .message .message-header .app-folder-dialog .message-expand-button:hover, + .app-folder-dialog .message .message-header .message-close-button:hover, + .message .message-header .app-folder-dialog .message-close-button:hover, .app-folder-dialog .screenshot-ui-show-pointer-button:hover { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #38383b, 12%), 4%); } + .app-folder-dialog .icon-button:active, .app-folder-dialog .login-dialog-button.a11y-button:active, .app-folder-dialog .login-dialog-button.cancel-button:active, .app-folder-dialog .login-dialog-button.switch-user-button:active, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:active, .app-folder-dialog .calendar .calendar-month-header .pager-button:active, .calendar .calendar-month-header .app-folder-dialog .pager-button:active, .app-folder-dialog .message-notification-group .message-collapse-button:active, .message-notification-group .app-folder-dialog .message-collapse-button:active, .app-folder-dialog .message .message-header .message-expand-button:active, .message .message-header .app-folder-dialog .message-expand-button:active, + .app-folder-dialog .message .message-header .message-close-button:active, + .message .message-header .app-folder-dialog .message-close-button:active, .app-folder-dialog .screenshot-ui-show-pointer-button:active { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #38383b, 12%), 9%); } + .app-folder-dialog .icon-button:active:hover, .app-folder-dialog .login-dialog-button.a11y-button:active:hover, .app-folder-dialog .login-dialog-button.cancel-button:active:hover, .app-folder-dialog .login-dialog-button.switch-user-button:active:hover, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:active:hover, .app-folder-dialog .calendar .calendar-month-header .pager-button:active:hover, .calendar .calendar-month-header .app-folder-dialog .pager-button:active:hover, .app-folder-dialog .message-notification-group .message-collapse-button:active:hover, .message-notification-group .app-folder-dialog .message-collapse-button:active:hover, .app-folder-dialog .message .message-header .message-expand-button:active:hover, .message .message-header .app-folder-dialog .message-expand-button:active:hover, + .app-folder-dialog .message .message-header .message-close-button:active:hover, + .message .message-header .app-folder-dialog .message-close-button:active:hover, .app-folder-dialog .screenshot-ui-show-pointer-button:active:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #38383b, 12%), 9%), 4%); } + .app-folder-dialog .icon-button:active:focus, .app-folder-dialog .login-dialog-button.a11y-button:active:focus, .app-folder-dialog .login-dialog-button.cancel-button:active:focus, .app-folder-dialog .login-dialog-button.switch-user-button:active:focus, .app-folder-dialog .login-dialog-button.login-dialog-session-list-button:active:focus, .app-folder-dialog .calendar .calendar-month-header .pager-button:active:focus, .calendar .calendar-month-header .app-folder-dialog .pager-button:active:focus, .app-folder-dialog .message-notification-group .message-collapse-button:active:focus, .message-notification-group .app-folder-dialog .message-collapse-button:active:focus, .app-folder-dialog .message .message-header .message-expand-button:active:focus, .message .message-header .app-folder-dialog .message-expand-button:active:focus, + .app-folder-dialog .message .message-header .message-close-button:active:focus, + .message .message-header .app-folder-dialog .message-close-button:active:focus, .app-folder-dialog .screenshot-ui-show-pointer-button:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(st-mix(#fafafb, #38383b, 12%), 9%), 5%); } + .app-folder-dialog .page-indicators { + margin-bottom: 24px; } + .app-folder-dialog .page-navigation-arrow { + color: #fafafb; + background-color: #38383b; } + .app-folder-dialog .page-navigation-arrow:hover { + color: #fafafb; + background-color: st-lighten(#38383b, 7%); } + .app-folder-dialog .page-navigation-arrow:active { + color: #fafafb; + background-color: st-lighten(#38383b, 9%); } + .app-folder-dialog .page-navigation-arrow:active:hover { + background-color: st-lighten(st-lighten(#38383b, 9%), 7%); } + .app-folder-dialog .page-navigation-arrow:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(#38383b, 9%), 5%); } + .app-folder-dialog .overview-tile, .app-folder-dialog .grid-search-result { + color: #fafafb; + background-color: #38383b; + background-color: transparent; } + .app-folder-dialog .overview-tile:focus, .app-folder-dialog .grid-search-result:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(56, 56, 59, 0.25), 5%); } + .app-folder-dialog .overview-tile:focus:hover, .app-folder-dialog .grid-search-result:focus:hover { + background-color: st-mix(-st-accent-color, st-lighten(#38383b, 7%), 5%); } + .app-folder-dialog .overview-tile:hover, .app-folder-dialog .grid-search-result:hover { + color: #fafafb; + background-color: st-lighten(#38383b, 7%); } + .app-folder-dialog .overview-tile:active, .app-folder-dialog .grid-search-result:active { + color: #fafafb; + background-color: st-lighten(#38383b, 9%); } + .app-folder-dialog .overview-tile:active:hover, .app-folder-dialog .grid-search-result:active:hover { + background-color: st-lighten(st-lighten(#38383b, 9%), 7%); } + .app-folder-dialog .overview-tile:active:focus, .app-folder-dialog .grid-search-result:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(#38383b, 9%), 5%); } + .app-folder-dialog .overview-tile:highlighted, .app-folder-dialog .grid-search-result:highlighted, .app-folder-dialog .overview-tile:selected, .app-folder-dialog .grid-search-result:selected, .app-folder-dialog .overview-tile:checked, .app-folder-dialog .grid-search-result:checked { + color: #fafafb; + background-color: st-lighten(#38383b, 8%); } + .app-folder-dialog .overview-tile:highlighted:hover, .app-folder-dialog .grid-search-result:highlighted:hover, .app-folder-dialog .overview-tile:selected:hover, .app-folder-dialog .grid-search-result:selected:hover, .app-folder-dialog .overview-tile:checked:hover, .app-folder-dialog .grid-search-result:checked:hover { + background-color: st-lighten(st-lighten(#38383b, 8%), 7%); } + .app-folder-dialog .overview-tile:highlighted:active, .app-folder-dialog .grid-search-result:highlighted:active, .app-folder-dialog .overview-tile:selected:active, .app-folder-dialog .grid-search-result:selected:active, .app-folder-dialog .overview-tile:checked:active, .app-folder-dialog .grid-search-result:checked:active { + background-color: st-lighten(st-lighten(#38383b, 8%), 9%); } + .app-folder-dialog .overview-tile:insensitive, .app-folder-dialog .grid-search-result:insensitive { + color: st-transparentize(#fafafb, 0.6); + background-color: #38383b; } + .app-folder-dialog .overview-tile:drop, .app-folder-dialog .grid-search-result:drop { + background-color: st-transparentize(-st-accent-color, 0.8); + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2); } + +.rename-folder-popup .rename-folder-popup-item { + spacing: 6px; } + .rename-folder-popup .rename-folder-popup-item:ltr, .rename-folder-popup .rename-folder-popup-item:rtl { + padding: 0 12px; } + +.page-indicator { + padding: 6px 12px 0; + transition-duration: 400ms; } + .page-indicator .page-indicator-icon { + width: 10px; + height: 10px; + border-radius: 999px; + background-color: #fafafb; + transition-duration: 400ms; } + +.apps-scroll-view { + padding: 0; } + +.system-action-icon { + background-color: rgba(250, 250, 251, 0.1); + color: #fafafb; + border-radius: 999px; + icon-size: 48px; } + +.page-navigation-hint.dnd { + background: rgba(255, 255, 255, 0.1); } + +.page-navigation-hint.next:ltr, .page-navigation-hint.previous:rtl { + background-gradient-start: rgba(255, 255, 255, 0.05); + background-gradient-end: transparent; + background-gradient-direction: horizontal; + border-radius: 24px 0px 0px 24px; } + +.page-navigation-hint.previous:ltr, .page-navigation-hint.next:rtl { + background-gradient-start: transparent; + background-gradient-end: rgba(255, 255, 255, 0.05); + background-gradient-direction: horizontal; + border-radius: 0px 24px 24px 0px; } + +.page-navigation-arrow { + margin: 6px; + padding: 18px; + width: 24px; + height: 24px; + border-radius: 999px; + transition-duration: 100ms; + color: #fafafb; + background-color: #222226; } + .page-navigation-arrow > StIcon { + color: #fafafb; } + .page-navigation-arrow:hover { + color: #fafafb; + background-color: st-lighten(#222226, 7%); } + .page-navigation-arrow:active { + color: #fafafb; + background-color: st-lighten(#222226, 9%); } + .page-navigation-arrow:active:hover { + background-color: st-lighten(st-lighten(#222226, 9%), 7%); } + .page-navigation-arrow:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(#222226, 9%), 5%); } + +/* Workspace pager */ +.workspace-thumbnails { + visible-width: 32px; + spacing: 6px; + padding: 6px; } + .workspace-thumbnails .workspace-thumbnail { + color: #fafafb; + background-color: #46464e; + border-radius: 4px; + border: 1px solid transparent; } + .workspace-thumbnails .placeholder { + background-image: url("resource:///org/gnome/shell/theme/workspace-placeholder.svg"); + background-size: contain; + width: 18px; } + +.workspace-thumbnail-indicator { + border: 3px solid -st-accent-color; + border-radius: 8px; } + +.ripple-pointer-location { + width: 50px; + height: 50px; + border-radius: 25px; + background-color: st-lighten(st-transparentize(-st-accent-color, 0.7), 30%); + box-shadow: 0 0 2px 2px st-lighten(-st-accent-color, 20%); } + +.pie-timer { + width: 60px; + height: 60px; + -pie-border-width: 3px; + -pie-border-color: -st-accent-color; + -pie-background-color: st-lighten(st-transparentize(-st-accent-color, 0.7), 40%); } + +.magnifier-zoom-region { + border: 2px solid -st-accent-color; } + .magnifier-zoom-region.full-screen { + border-width: 0; } + +.select-area-rubberband { + background-color: st-transparentize(-st-accent-color, 0.7); + border: 1px solid -st-accent-color; } + +.user-icon { + background-size: contain; + border-radius: 999px; + icon-size: 64px; + background-color: rgba(34, 34, 38, 0.05); + color: #222226; } + .user-icon StIcon { + padding: 12px; } + .user-icon.user-avatar { + box-shadow: inset 0 0 0 1px rgba(34, 34, 38, 0.1); } + +.lightbox { + background-color: black; } + +.flashspot { + background-color: white; } + +.hidden { + color: transparent; } + +.caps-lock-warning-label { + text-align: center; + padding-bottom: 8px; + color: #e5a50a; } + +/* Workspace animation */ +.workspace-animation { + background-color: #2e2e33; } + +/* Tiled window previews */ +.tile-preview { + background-color: st-transparentize(-st-accent-color, 0.5); + border: 1px solid -st-accent-color; } + +/* On-screen Keyboard */ +#keyboard { + background-color: #2e2e33; + box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.02); } + #keyboard .page-indicator { + padding: 6px; } + #keyboard .page-indicator .page-indicator-icon { + width: 8px; + height: 8px; } + +.key-container { + padding: 4px; + spacing: 4px; } + +.keyboard-key { + font-size: 1.455em; + font-weight: bold; + border-radius: 0.546em; + box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.05); + color: #ffffff; + background-color: st-mix(#ffffff, #4d4d4d, 12%); } + .keyboard-key:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(#222226, #fafafb, 12%), 5%); } + .keyboard-key:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#222226, #fafafb, 12%), 4%), 5%); } + .keyboard-key:hover { + color: #ffffff; + background-color: st-darken(st-mix(#ffffff, #4d4d4d, 12%), 4%); } + .keyboard-key:active { + color: #ffffff; + background-color: st-darken(st-mix(#ffffff, #4d4d4d, 12%), 9%); } + .keyboard-key:active:hover { + background-color: st-darken(st-darken(st-mix(#ffffff, #4d4d4d, 12%), 9%), 4%); } + .keyboard-key:active:focus { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#ffffff, #4d4d4d, 12%), 9%), 5%); } + .keyboard-key:checked { + color: #ffffff; + background-color: st-darken(st-mix(#ffffff, #4d4d4d, 12%), 8%); } + .keyboard-key:checked:hover { + background-color: st-darken(st-darken(st-mix(#ffffff, #4d4d4d, 12%), 8%), 4%); } + .keyboard-key:checked:active { + background-color: st-darken(st-darken(st-mix(#ffffff, #4d4d4d, 12%), 8%), 9%); } + .keyboard-key.default-key { + color: #ffffff; + background-color: st-mix(#ffffff, #303030, 12%); + border: none; } + .keyboard-key.default-key:hover { + color: #ffffff; + background-color: st-darken(st-mix(#ffffff, #303030, 12%), 4%); } + .keyboard-key.default-key:active { + color: #ffffff; + background-color: st-darken(st-mix(#ffffff, #303030, 12%), 9%); } + .keyboard-key.default-key:active:hover { + background-color: st-darken(st-darken(st-mix(#ffffff, #303030, 12%), 9%), 4%); } + .keyboard-key.default-key:active:focus { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#ffffff, #303030, 12%), 9%), 5%); } + .keyboard-key.default-key:checked { + color: #ffffff; + background-color: st-darken(st-mix(#ffffff, #303030, 12%), 8%); } + .keyboard-key.default-key:checked:hover { + background-color: st-darken(st-darken(st-mix(#ffffff, #303030, 12%), 8%), 4%); } + .keyboard-key.default-key:checked:active { + background-color: st-darken(st-darken(st-mix(#ffffff, #303030, 12%), 8%), 9%); } + .keyboard-key.default-key:latched { + background-color: -st-accent-color; } + .keyboard-key StIcon { + icon-size: 1.6365em; } + +.keyboard-subkeys-boxpointer { + -arrow-border-radius: 22px; + -arrow-background-color: #2e2e33; + -arrow-border-width: 1px; + -arrow-border-color: #44444c; + -arrow-base: 20px; + -arrow-rise: 10px; + -boxpointer-gap: 4px; + border-radius: 22px; + box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.1); } + .keyboard-subkeys-boxpointer .key-container { + padding: 12px; + spacing: 8px; } + +.emoji-page .keyboard-key { + background-color: transparent; + border: none; + color: initial; } + +.emoji-panel .keyboard-key:latched { + border-color: st-lighten(-st-accent-color, 5%); + background-color: -st-accent-color; } + +.word-suggestions { + spacing: 12px; + min-height: 17pt; + padding: 12px; + color: #ffffff; } + .word-suggestions StButton { + margin: 0 3px; + min-width: 32px; + border-radius: 4px; + padding: 6px 18px; + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .word-suggestions StButton:insensitive { + background-color: transparent !important; } + .word-suggestions StButton:focus { + color: #222226; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(#222226, #fafafb, 12%), 5%); } + .word-suggestions StButton:focus:hover { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#222226, #fafafb, 12%), 4%), 5%); } + .word-suggestions StButton:hover { + color: #ffffff; + background-color: st-darken(st-mix(#ffffff, #4d4d4d, 12%), 4%); } + .word-suggestions StButton:active { + color: #ffffff; + background-color: st-darken(st-mix(#ffffff, #4d4d4d, 12%), 9%); } + .word-suggestions StButton:active:hover { + background-color: st-darken(st-darken(st-mix(#ffffff, #4d4d4d, 12%), 9%), 4%); } + .word-suggestions StButton:active:focus { + background-color: st-mix(-st-accent-color, st-darken(st-mix(#ffffff, #4d4d4d, 12%), 9%), 5%); } + .word-suggestions StButton:checked { + color: #ffffff; + background-color: st-darken(st-mix(#ffffff, #4d4d4d, 12%), 8%); } + .word-suggestions StButton:checked:hover { + background-color: st-darken(st-darken(st-mix(#ffffff, #4d4d4d, 12%), 8%), 4%); } + .word-suggestions StButton:checked:active { + background-color: st-darken(st-darken(st-mix(#ffffff, #4d4d4d, 12%), 8%), 9%); } + +/* Looking Glass */ +.lg-dialog StEntry { + min-height: 1.5em; } + +.lg-dialog .shell-link { + color: st-lighten(-st-accent-color, 20%); } + .lg-dialog .shell-link:hover { + color: st-lighten(st-lighten(-st-accent-color, 20%), 10%); } + .lg-dialog .shell-link:active { + color: st-darken(st-lighten(-st-accent-color, 20%), 10%); } + +.lg-dialog .actor-link { + color: st-darken(#ffffff, 20%); } + .lg-dialog .actor-link:hover { + color: #ffffff; } + .lg-dialog .actor-link:active { + color: st-lighten(#ffffff, 20%); } + .lg-dialog .actor-link StIcon { + icon-size: 12px; } + +.lg-completions-text { + font-style: italic; } + +#LookingGlassDialog { + background-color: rgba(46, 46, 51, 0.98); + color: #ffffff; + border-radius: 16px; + margin-top: 4px; + border: 2px solid transparent; + padding: 6px; + spacing: 6px; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05); } + #LookingGlassDialog > #Toolbar { + border: none; + padding: 6px; + border-radius: 0; + background-color: transparent; + spacing: 6px; } + #LookingGlassDialog > #Toolbar .lg-toolbar-button { + padding: 6px 12px; } + #LookingGlassDialog > #Toolbar .lg-toolbar-button > StIcon { + icon-size: 16px; } + #LookingGlassDialog .labels { + spacing: 6px; } + #LookingGlassDialog .notebook-tab { + background-color: transparent; + -natural-hpadding: 12px; + -minimum-hpadding: 12px; + padding: 6px 12px; } + #LookingGlassDialog .notebook-tab:selected { + color: #ffffff; + background-color: st-lighten(st-mix(#ffffff, #2e2e33, 12%), 9%); } + #LookingGlassDialog .notebook-tab:selected:hover { + background-color: st-lighten(st-lighten(st-mix(#ffffff, #2e2e33, 12%), 9%), 4%); } + #LookingGlassDialog .notebook-tab:selected:focus { + background-color: st-mix(-st-accent-color, st-lighten(st-mix(#ffffff, #2e2e33, 12%), 9%), 5%); } + +#LookingGlassPropertyInspector { + background-color: #2e2e33; + color: #ffffff; + border-radius: 16px; + border: 1px solid rgba(255, 255, 255, 0.1); + padding: 12px; } + #LookingGlassPropertyInspector .lg-obj-inspector-title { + spacing: 4px; } + #LookingGlassPropertyInspector .lg-obj-inspector-close-button, + #LookingGlassPropertyInspector .lg-obj-inspector-button { + padding: 6px 12px; } + #LookingGlassPropertyInspector .lg-obj-inspector-close-button { + margin: 4px; + padding: 6px; + border-radius: 999px; } + #LookingGlassPropertyInspector .lg-obj-inspector-close-button > StIcon { + icon-size: 16px; } + +#LookingGlassEvaluator { + padding: 6px; } + #LookingGlassEvaluator .evaluator-results { + spacing: 6px; } + +#LookingGlassWindows { + padding: 6px; + spacing: 6px; } + #LookingGlassWindows .lg-window { + color: #ffffff; + background-color: st-mix(#ffffff, #2e2e33, 12%); + margin: 0; + padding: 12px; } + +#LookingGlassExtensions .lg-extensions-list { + padding: 6px; + spacing: 6px; } + +#LookingGlassExtensions .lg-extension { + color: #ffffff; + background-color: st-mix(#ffffff, #2e2e33, 12%); + margin: 0; + spacing: 4px; + padding: 12px; } + #LookingGlassExtensions .lg-extension .lg-extension-name { + color: #ffffff !important; } + #LookingGlassExtensions .lg-extension .lg-extension-meta { + spacing: 12px; } + +#LookingGlassExtensions .lg-extensions-none { + color: rgba(255, 255, 255, 0.5); } + +#LookingGlassActors { + padding: 6px; + spacing: 4px; } + +#LookingGlassDebugFlags .lg-debug-flags-header { + padding: 6px; + padding-top: 12px; } + +#LookingGlassDebugFlags .lg-debug-flag-button { + padding: 9px 12px; + margin-bottom: 6px; } + #LookingGlassDebugFlags .lg-debug-flag-button StLabel { + font-weight: normal !important; } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch { + background: rgba(255, 255, 255, 0.15); } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch:hover { + background: rgba(255, 255, 255, 0.2); } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch:checked { + background: -st-accent-color; + color: -st-accent-fg-color; } + #LookingGlassDebugFlags .lg-debug-flag-button .toggle-switch:checked:hover { + background-color: st-lighten(-st-accent-color, 5%); + color: st-lighten(-st-accent-fg-color, 5%); } + +.login-dialog, +.unlock-dialog { + color: #fafafb; } + .login-dialog .caps-lock-warning-label, + .login-dialog .login-dialog-message-warning, + .unlock-dialog .caps-lock-warning-label, + .unlock-dialog .login-dialog-message-warning { + color: #fafafb; } + .login-dialog .login-dialog-prompt-layout, + .unlock-dialog .login-dialog-prompt-layout { + width: 25em; + spacing: 9px; } + +.login-dialog-bottom-button-group { + padding: 32px; + spacing: 16px; } + +.login-dialog-button.a11y-button, .login-dialog-button.cancel-button, .login-dialog-button.switch-user-button, .login-dialog-button.login-dialog-session-list-button { + padding: 1.091em; } + +.login-dialog-button.cancel-button { + padding: 9px; } + +.login-dialog-button-box { + spacing: 12px; } + +.conflicting-session-dialog-content { + spacing: 20px; } + .conflicting-session-dialog-content .conflicting-session-dialog-title { + text-align: center; + margin-bottom: 5px; } + .conflicting-session-dialog-content .conflicting-session-dialog-desc { + text-align: center; } + .conflicting-session-dialog-content .conflicting-session-dialog-desc-warning { + text-align: center; + color: #e5a50a; + background-color: rgba(229, 165, 10, 0.1); + padding: 9px; + border-radius: 8px; + margin: 4px 0; } + +.login-dialog-logo-bin { + margin: 3em 0; } + +.login-dialog-banner-view { + max-width: 25em; } + .login-dialog-banner-view .login-dialog-banner { + color: #dedee4; } + +.login-dialog-message { + text-align: center; } + +.login-dialog-message-hint, .login-dialog-message { + color: #dedee4; + min-height: 2.75em; } + +.login-dialog-user-selection-box { + padding-top: 4em; + padding-bottom: 8em; } + +.login-dialog-not-listed-label { + padding: 6px; } + +.login-dialog-not-listed-button { + color: #fafafb; + background-color: #222226; + padding: 0 6px; + margin: 6px; } + .login-dialog-not-listed-button:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, rgba(34, 34, 38, 0.25), 5%); } + .login-dialog-not-listed-button:focus:hover { + background-color: st-mix(-st-accent-color, st-lighten(#222226, 7%), 5%); } + .login-dialog-not-listed-button:hover { + color: #fafafb; + background-color: st-lighten(#222226, 7%); } + .login-dialog-not-listed-button:active { + color: #fafafb; + background-color: st-lighten(#222226, 9%); } + .login-dialog-not-listed-button:active:hover { + background-color: st-lighten(st-lighten(#222226, 9%), 7%); } + .login-dialog-not-listed-button:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(#222226, 9%), 5%); } + +.login-dialog-auth-list-view { + -st-vfade-offset: 3em; } + +.login-dialog-auth-list { + spacing: 6px; + margin-left: 2em; } + +.login-dialog-auth-list-title { + margin-left: 2em; + padding-bottom: 6px; } + +.login-dialog .login-dialog-auth-list-item { + color: #fafafb; + background-color: st-mix(#fafafb, #222226, 12%); + border-radius: 9.6px; + padding: 7.2px; } + .login-dialog .login-dialog-auth-list-item:selected, .login-dialog .login-dialog-auth-list-item:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(#fafafb, #222226, 12%), 5%); } + .login-dialog .login-dialog-auth-list-item:selected:hover, .login-dialog .login-dialog-auth-list-item:focus:hover { + background-color: st-mix(-st-accent-color, st-lighten(st-mix(#fafafb, #222226, 12%), 4%), 5%); } + .login-dialog .login-dialog-auth-list-item:hover { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 12%), 4%); } + .login-dialog .login-dialog-auth-list-item:active { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 12%), 9%); } + .login-dialog .login-dialog-auth-list-item:active:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 12%), 9%), 4%); } + .login-dialog .login-dialog-auth-list-item:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(st-mix(#fafafb, #222226, 12%), 9%), 5%); } + +.unlock-dialog .login-dialog-auth-list-item { + border-radius: 9.6px; + padding: 7.2px; } + +.login-dialog-auth-list-label:ltr { + padding-left: 15px; + text-align: left; } + +.login-dialog-auth-list-label:rtl { + padding-right: 15px; + text-align: right; } + +.login-dialog-user-list-view { + width: 25em; + -st-vfade-offset: 3em; } + .login-dialog-user-list-view .login-dialog-user-list { + margin: 0 8px; + spacing: 12px; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item { + color: #fafafb; + background-color: st-mix(#fafafb, #222226, 12%); + border-radius: 16px; + padding: 9px; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:selected, .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:focus { + color: #fafafb; + box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, 0.2) !important; + background-color: st-mix(-st-accent-color, st-mix(#fafafb, #222226, 12%), 5%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:selected:hover, .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:focus:hover { + background-color: st-mix(-st-accent-color, st-lighten(st-mix(#fafafb, #222226, 12%), 4%), 5%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:hover { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 12%), 4%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active { + color: #fafafb; + background-color: st-lighten(st-mix(#fafafb, #222226, 12%), 9%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active:hover { + background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 12%), 9%), 4%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active:focus { + background-color: st-mix(-st-accent-color, st-lighten(st-mix(#fafafb, #222226, 12%), 9%), 5%); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .user-icon { + border: 2px solid transparent; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .login-dialog-timed-login-indicator { + height: 2px; + margin-top: 6px; + background-color: rgba(250, 250, 251, 0.7); } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:logged-in .user-icon { + border-color: -st-accent-color; } + .login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:logged-in .user-icon StIcon { + background-color: st-transparentize(-st-accent-color, 0.7); } + +.unlock-dialog { + background-color: transparent; } + +.screen-shield-background { + background: black; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.6); } + +#lockDialogGroup { + background-color: #222226; } + +.unlock-dialog-clock { + color: #fafafb; + spacing: 2em; } + .unlock-dialog-clock .unlock-dialog-clock-time { + font-size: 6.546em; + font-weight: 800; } + .unlock-dialog-clock .unlock-dialog-clock-date { + font-weight: 400; } + .unlock-dialog-clock .unlock-dialog-clock-hint { + margin-top: 2em; + padding: 6px 18px; + border-radius: 16px; + font-weight: bold; } + +.parental-controls-shield { + spacing: 0.75em; } + .parental-controls-shield .parental-controls-shield-title { + margin-top: 0.6em; + text-align: center; } + .parental-controls-shield .parental-controls-shield-description { + text-align: center; } + .parental-controls-shield .parental-controls-shield-button { + margin-top: 0.85em; + padding: 16px 44px; + color: #fafafb; + background-color: rgba(250, 250, 251, 0.1); + border-radius: 999px; } + +#unlockDialogNotifications > .vhandle, #unlockDialogNotifications > .hhandle { + background-color: rgba(250, 250, 251, 0.3); } + #unlockDialogNotifications > .vhandle:hover, #unlockDialogNotifications > .vhandle:focus, #unlockDialogNotifications > .hhandle:hover, #unlockDialogNotifications > .hhandle:focus { + background-color: rgba(250, 250, 251, 0.5); } + #unlockDialogNotifications > .vhandle:active, #unlockDialogNotifications > .hhandle:active { + background-color: st-transparentize(-st-accent-color, 0.5); } + +.unlock-dialog-notifications-container { + margin: 12px; + spacing: 6px; + width: 25em; + background-color: transparent; } + .unlock-dialog-notifications-container .summary-notification-stack-scrollview { + padding-top: 0; + padding-bottom: 0; } + .unlock-dialog-notifications-container .message, + .unlock-dialog-notifications-container .unlock-dialog-notification-source { + padding: 12px 16px; + border: none; + background-color: rgba(250, 250, 251, 0.1); + color: #fafafb; + border-radius: 16px; } + .unlock-dialog-notifications-container .message.critical, + .unlock-dialog-notifications-container .unlock-dialog-notification-source.critical { + background-color: rgba(250, 250, 251, 0.2); } + .unlock-dialog-notifications-container .message:active, + .unlock-dialog-notifications-container .unlock-dialog-notification-source:active { + background-color: rgba(250, 250, 251, 0.1); } + .unlock-dialog-notifications-container .message StButton, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton { + background-color: transparent; } + .unlock-dialog-notifications-container .message StButton:insensitive, + .unlock-dialog-notifications-container .unlock-dialog-notification-source StButton:insensitive { + background-color: transparent; + opacity: 0.5; } + .unlock-dialog-notifications-container .message .message-header, + .unlock-dialog-notifications-container .unlock-dialog-notification-source .message-header { + color: #fafafb; } + +.unlock-dialog-notification-icon { + icon-size: 32px; } + +.unlock-dialog-notification-label { + padding-left: 12px; + padding-right: 0; } + .unlock-dialog-notification-label:rtl { + padding-right: 12px; + padding-left: 0; } + +.unlock-dialog-notification-count-text { + font-weight: bold; + padding: 0 12px; + color: #fafafb; + background-color: rgba(250, 250, 251, 0.1); + border-radius: 999px; } + +.login-dialog .user-widget .user-widget-label, +.unlock-dialog .user-widget .user-widget-label { + color: #fafafb; } + +.login-dialog .user-widget .user-icon, +.unlock-dialog .user-widget .user-icon { + background-color: rgba(250, 250, 251, 0.13); + color: #fafafb; } + +.login-dialog .user-widget.horizontal, +.unlock-dialog .user-widget.horizontal { + spacing: 18px; } + +.login-dialog .user-widget.vertical, +.unlock-dialog .user-widget.vertical { + spacing: 24px; } + .login-dialog .user-widget.vertical .user-widget-label, + .unlock-dialog .user-widget.vertical .user-widget-label { + font-weight: 400; + font-size: 1.818em; + text-align: center; + margin-bottom: .75em; } + .login-dialog .user-widget.vertical .user-icon, + .unlock-dialog .user-widget.vertical .user-icon { + icon-size: 160px; } + .login-dialog .user-widget.vertical .user-icon StIcon, + .unlock-dialog .user-widget.vertical .user-icon StIcon { + padding: 30px; } diff --cc subprojects/gvc/gvc-mixer-control.c index 57dc2d4f2,000000000..099b8d9b2 mode 100644,000000..100644 --- a/subprojects/gvc/gvc-mixer-control.c +++ b/subprojects/gvc/gvc-mixer-control.c @@@ -1,3924 -1,0 +1,3940 @@@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright (C) 2006-2008 Lennart Poettering + * Copyright (C) 2008 Sjoerd Simons + * Copyright (C) 2008 William Jon McCann + * Copyright (C) 2012 Conor Curran + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#include "config.h" + +#include +#include +#include + +#include +#include + +#include +#include +#include + +#ifdef HAVE_ALSA +#include +#endif /* HAVE_ALSA */ + +#include "gvc-mixer-control.h" +#include "gvc-mixer-sink.h" +#include "gvc-mixer-source.h" +#include "gvc-mixer-sink-input.h" +#include "gvc-mixer-source-output.h" +#include "gvc-mixer-event-role.h" +#include "gvc-mixer-card.h" +#include "gvc-mixer-card-private.h" +#include "gvc-channel-map-private.h" +#include "gvc-mixer-control-private.h" +#include "gvc-mixer-ui-device.h" + +#define RECONNECT_DELAY 5 + +enum { + PROP_0, + PROP_NAME, + N_PROPS +}; +static GParamSpec *obj_props[N_PROPS] = { NULL, }; + +struct GvcMixerControlPrivate +{ + pa_glib_mainloop *pa_mainloop; + pa_mainloop_api *pa_api; + pa_context *pa_context; + guint server_protocol_version; + int n_outstanding; + guint reconnect_id; + char *name; + + gboolean default_sink_is_set; + guint default_sink_id; + char *default_sink_name; + gboolean default_source_is_set; + guint default_source_id; + char *default_source_name; + + gboolean event_sink_input_is_set; + guint event_sink_input_id; + + GHashTable *all_streams; + GHashTable *sinks; /* fixed outputs */ + GHashTable *sources; /* fixed inputs */ + GHashTable *sink_inputs; /* routable output streams */ + GHashTable *source_outputs; /* routable input streams */ + GHashTable *clients; + GHashTable *cards; + + GvcMixerStream *new_default_sink_stream; /* new default sink stream, used in gvc_mixer_control_set_default_sink () */ + GvcMixerStream *new_default_source_stream; /* new default source stream, used in gvc_mixer_control_set_default_source () */ + + GHashTable *ui_outputs; /* UI visible outputs */ + GHashTable *ui_inputs; /* UI visible inputs */ + + /* When we change profile on a device that is not the server default sink, + * it will jump back to the default sink set by the server to prevent the + * audio setup from being 'outputless'. + * + * All well and good but then when we get the new stream created for the + * new profile how do we know that this is the intended default or selected + * device the user wishes to use. */ + guint profile_swapping_device_id; + +#ifdef HAVE_ALSA + int headset_card; + gboolean has_headsetmic; + gboolean has_headphonemic; + gboolean headset_plugged_in; + char *headphones_name; + char *headsetmic_name; + char *headphonemic_name; + char *internalspk_name; + char *internalmic_name; +#endif /* HAVE_ALSA */ + + GvcMixerControlState state; +}; + +enum { + STATE_CHANGED, + STREAM_ADDED, + STREAM_REMOVED, + STREAM_CHANGED, + CARD_ADDED, + CARD_REMOVED, + DEFAULT_SINK_CHANGED, + DEFAULT_SOURCE_CHANGED, + ACTIVE_OUTPUT_UPDATE, + ACTIVE_INPUT_UPDATE, + OUTPUT_ADDED, + INPUT_ADDED, + OUTPUT_REMOVED, + INPUT_REMOVED, + AUDIO_DEVICE_SELECTION_NEEDED, + LAST_SIGNAL +}; + +static guint signals [LAST_SIGNAL] = { 0, }; + +static void gvc_mixer_control_finalize (GObject *object); + +G_DEFINE_TYPE_WITH_PRIVATE (GvcMixerControl, gvc_mixer_control, G_TYPE_OBJECT) + +pa_context * +gvc_mixer_control_get_pa_context (GvcMixerControl *control) +{ + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + return control->priv->pa_context; +} + +/** + * gvc_mixer_control_get_event_sink_input: + * @control: + * + * Returns: (transfer none): + */ +GvcMixerStream * +gvc_mixer_control_get_event_sink_input (GvcMixerControl *control) +{ + GvcMixerStream *stream; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + stream = g_hash_table_lookup (control->priv->all_streams, + GUINT_TO_POINTER (control->priv->event_sink_input_id)); + + return stream; +} + +static void +gvc_mixer_control_stream_restore_cb (pa_context *c, + GvcMixerStream *new_stream, + const pa_ext_stream_restore_info *info, + GvcMixerControl *control) +{ + pa_operation *o; + pa_ext_stream_restore_info new_info; + + if (new_stream == NULL) + return; + + new_info.name = info->name; + new_info.channel_map = info->channel_map; + new_info.volume = info->volume; + new_info.mute = info->mute; + + new_info.device = gvc_mixer_stream_get_name (new_stream); + + o = pa_ext_stream_restore_write (control->priv->pa_context, + PA_UPDATE_REPLACE, + &new_info, 1, + TRUE, NULL, NULL); + + if (o == NULL) { + g_warning ("pa_ext_stream_restore_write() failed: %s", + pa_strerror (pa_context_errno (control->priv->pa_context))); + return; + } + + g_debug ("Changed default device for %s to %s", info->name, new_info.device); + + pa_operation_unref (o); +} + +static void +gvc_mixer_control_stream_restore_sink_cb (pa_context *c, + const pa_ext_stream_restore_info *info, + int eol, + void *userdata) +{ + GvcMixerControl *control = (GvcMixerControl *) userdata; + if (eol || info == NULL || !g_str_has_prefix(info->name, "sink-input-by")) + return; + gvc_mixer_control_stream_restore_cb (c, control->priv->new_default_sink_stream, info, control); +} + +static void +gvc_mixer_control_stream_restore_source_cb (pa_context *c, + const pa_ext_stream_restore_info *info, + int eol, + void *userdata) +{ + GvcMixerControl *control = (GvcMixerControl *) userdata; + if (eol || info == NULL || !g_str_has_prefix(info->name, "source-output-by")) + return; + gvc_mixer_control_stream_restore_cb (c, control->priv->new_default_source_stream, info, control); +} + +/** + * gvc_mixer_control_lookup_device_from_stream: + * @control: + * @stream: + * + * Returns: (transfer none): a #GvcUIDevice or %NULL + */ +GvcMixerUIDevice * +gvc_mixer_control_lookup_device_from_stream (GvcMixerControl *control, + GvcMixerStream *stream) +{ + GList *devices, *d; + const GList *ports; + GvcMixerUIDevice *ret; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + g_return_val_if_fail (GVC_IS_MIXER_STREAM (stream), NULL); + + if (GVC_IS_MIXER_SOURCE (stream)) + devices = g_hash_table_get_values (control->priv->ui_inputs); + else + devices = g_hash_table_get_values (control->priv->ui_outputs); + + ret = NULL; + ports = gvc_mixer_stream_get_ports (stream); + + for (d = devices; d != NULL; d = d->next) { + GvcMixerUIDevice *device = d->data; + guint stream_id = G_MAXUINT; + const GvcMixerStreamPort *port; + + g_object_get (G_OBJECT (device), + "stream-id", &stream_id, + NULL); + + if (stream_id != gvc_mixer_stream_get_id (stream)) + continue; + + if (ports == NULL) { + g_debug ("lookup-device-from-stream - %s - is portless ", + gvc_mixer_ui_device_get_description (device)); + ret = device; + break; + } + + port = gvc_mixer_stream_get_port (stream); + if (g_strcmp0 (gvc_mixer_ui_device_get_port (device), port->port) == 0) { + g_debug ("lookup-device-from-stream found device: device description '%s', device port = '%s', device stream id %i AND stream port = '%s' stream id '%u' and stream description '%s'", + gvc_mixer_ui_device_get_description (device), + gvc_mixer_ui_device_get_port (device), + stream_id, + port->port, + gvc_mixer_stream_get_id (stream), + gvc_mixer_stream_get_description (stream)); + ret = device; + break; + + } + } + + if (!ret) + g_debug ("lookup-device-from-stream - Could not find a device for stream '%s'", gvc_mixer_stream_get_description (stream)); + + g_list_free (devices); + + return ret; +} + +gboolean +gvc_mixer_control_set_default_sink (GvcMixerControl *control, + GvcMixerStream *stream) +{ + pa_operation *o; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), FALSE); + g_return_val_if_fail (GVC_IS_MIXER_STREAM (stream), FALSE); + + g_debug ("about to set default sink on server"); + o = pa_context_set_default_sink (control->priv->pa_context, + gvc_mixer_stream_get_name (stream), + NULL, + NULL); + if (o == NULL) { + g_warning ("pa_context_set_default_sink() failed: %s", + pa_strerror (pa_context_errno (control->priv->pa_context))); + return FALSE; + } + + pa_operation_unref (o); + + control->priv->new_default_sink_stream = stream; + g_object_add_weak_pointer (G_OBJECT (stream), (gpointer *) &control->priv->new_default_sink_stream); + + o = pa_ext_stream_restore_read (control->priv->pa_context, + gvc_mixer_control_stream_restore_sink_cb, + control); + + if (o == NULL) { + g_warning ("pa_ext_stream_restore_read() failed: %s", + pa_strerror (pa_context_errno (control->priv->pa_context))); + return FALSE; + } + + pa_operation_unref (o); + + return TRUE; +} + +gboolean +gvc_mixer_control_set_default_source (GvcMixerControl *control, + GvcMixerStream *stream) +{ + pa_operation *o; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), FALSE); + g_return_val_if_fail (GVC_IS_MIXER_STREAM (stream), FALSE); + + o = pa_context_set_default_source (control->priv->pa_context, + gvc_mixer_stream_get_name (stream), + NULL, + NULL); + if (o == NULL) { + g_warning ("pa_context_set_default_source() failed"); + return FALSE; + } + + pa_operation_unref (o); + + control->priv->new_default_source_stream = stream; + g_object_add_weak_pointer (G_OBJECT (stream), (gpointer *) &control->priv->new_default_source_stream); + + o = pa_ext_stream_restore_read (control->priv->pa_context, + gvc_mixer_control_stream_restore_source_cb, + control); + + if (o == NULL) { + g_warning ("pa_ext_stream_restore_read() failed: %s", + pa_strerror (pa_context_errno (control->priv->pa_context))); + return FALSE; + } + + pa_operation_unref (o); + + return TRUE; +} + +/** + * gvc_mixer_control_get_default_sink: + * @control: + * + * Returns: (transfer none): + */ +GvcMixerStream * +gvc_mixer_control_get_default_sink (GvcMixerControl *control) +{ + GvcMixerStream *stream; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + if (control->priv->default_sink_is_set) { + stream = g_hash_table_lookup (control->priv->all_streams, + GUINT_TO_POINTER (control->priv->default_sink_id)); + } else { + stream = NULL; + } + + return stream; +} + +/** + * gvc_mixer_control_get_default_source: + * @control: + * + * Returns: (transfer none): + */ +GvcMixerStream * +gvc_mixer_control_get_default_source (GvcMixerControl *control) +{ + GvcMixerStream *stream; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + if (control->priv->default_source_is_set) { + stream = g_hash_table_lookup (control->priv->all_streams, + GUINT_TO_POINTER (control->priv->default_source_id)); + } else { + stream = NULL; + } + + return stream; +} + +static gpointer +gvc_mixer_control_lookup_id (GHashTable *hash_table, + guint id) +{ + return g_hash_table_lookup (hash_table, + GUINT_TO_POINTER (id)); +} + +/** + * gvc_mixer_control_lookup_stream_id: + * @control: + * @id: + * + * Returns: (transfer none): + */ +GvcMixerStream * +gvc_mixer_control_lookup_stream_id (GvcMixerControl *control, + guint id) +{ + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + return gvc_mixer_control_lookup_id (control->priv->all_streams, id); +} + +/** + * gvc_mixer_control_lookup_card_id: + * @control: + * @id: + * + * Returns: (transfer none): + */ +GvcMixerCard * +gvc_mixer_control_lookup_card_id (GvcMixerControl *control, + guint id) +{ + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + return gvc_mixer_control_lookup_id (control->priv->cards, id); +} + +/** + * gvc_mixer_control_lookup_output_id: + * @control: + * @id: + * + * Returns: (transfer none): + */ +GvcMixerUIDevice * +gvc_mixer_control_lookup_output_id (GvcMixerControl *control, + guint id) +{ + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + return gvc_mixer_control_lookup_id (control->priv->ui_outputs, id); +} + +/** + * gvc_mixer_control_lookup_input_id: + * @control: + * @id: + * + * Returns: (transfer none): + */ +GvcMixerUIDevice * +gvc_mixer_control_lookup_input_id (GvcMixerControl *control, + guint id) +{ + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + return gvc_mixer_control_lookup_id (control->priv->ui_inputs, id); +} + +/** + * gvc_mixer_control_get_stream_from_device: + * @control: + * @device: + * + * Returns: (transfer none): + */ +GvcMixerStream * +gvc_mixer_control_get_stream_from_device (GvcMixerControl *control, + GvcMixerUIDevice *device) +{ + gint stream_id; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + g_return_val_if_fail (GVC_IS_MIXER_UI_DEVICE (device), NULL); + + stream_id = gvc_mixer_ui_device_get_stream_id (device); + + if (stream_id == GVC_MIXER_UI_DEVICE_INVALID) { + g_debug ("gvc_mixer_control_get_stream_from_device - device has a null stream"); + return NULL; + } + return gvc_mixer_control_lookup_stream_id (control, stream_id); +} + +/** + * gvc_mixer_control_change_profile_on_selected_device: + * @control: + * @device: + * @profile: (allow-none): Can be %NULL if any profile present on this port is okay + * + * Returns: This method will attempt to swap the profile on the card of + * the device with given profile name. If successful it will set the + * preferred profile on that device so as we know the next time the user + * moves to that device it should have this profile active. + */ +gboolean +gvc_mixer_control_change_profile_on_selected_device (GvcMixerControl *control, + GvcMixerUIDevice *device, + const gchar *profile) +{ + const gchar *best_profile; + GvcMixerCardProfile *current_profile; + GvcMixerCard *card; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), FALSE); + g_return_val_if_fail (GVC_IS_MIXER_UI_DEVICE (device), FALSE); + + g_object_get (G_OBJECT (device), "card", &card, NULL); + current_profile = gvc_mixer_card_get_profile (card); + + if (current_profile) + best_profile = gvc_mixer_ui_device_get_best_profile (device, profile, current_profile->profile); + else + best_profile = profile; + + g_assert (best_profile); + + g_debug ("Selected '%s', moving to profile '%s' on card '%s' on stream id %i", + profile ? profile : "(any)", best_profile, + gvc_mixer_card_get_name (card), + gvc_mixer_ui_device_get_stream_id (device)); + + g_debug ("default sink name = %s and default sink id %u", + control->priv->default_sink_name, + control->priv->default_sink_id); + + control->priv->profile_swapping_device_id = gvc_mixer_ui_device_get_id (device); + + if (gvc_mixer_card_change_profile (card, best_profile)) { + gvc_mixer_ui_device_set_user_preferred_profile (device, best_profile); + return TRUE; + } + return FALSE; +} + +/** + * gvc_mixer_control_change_output: + * @control: + * @output: + * This method is called from the UI when the user selects a previously unselected device. + * - Firstly it queries the stream from the device. + * - It assumes that if the stream is null that it cannot be a bluetooth or network stream (they never show unless they have valid sinks and sources) + * In the scenario of a NULL stream on the device + * - It fetches the device's preferred profile or if NULL the profile with the highest priority on that device. + * - It then caches this device in control->priv->cached_desired_output_id so that when the update_sink triggered + * from when we attempt to change profile we will know exactly what device to highlight on that stream. + * - It attempts to swap the profile on the card from that device and returns. + * - Next, it handles network or bluetooth streams that only require their stream to be made the default. + * - Next it deals with port changes so if the stream's active port is not the same as the port on the device + * it will attempt to change the port on that stream to be same as the device. If this fails it will return. + * - Finally it will set this new stream to be the default stream and emit a signal for the UI confirming the active output device. + */ +void +gvc_mixer_control_change_output (GvcMixerControl *control, + GvcMixerUIDevice* output) +{ + GvcMixerStream *stream; + GvcMixerStream *default_stream; + const GvcMixerStreamPort *active_port; + const gchar *output_port; + + g_return_if_fail (GVC_IS_MIXER_CONTROL (control)); + g_return_if_fail (GVC_IS_MIXER_UI_DEVICE (output)); + + g_debug ("control change output"); + + stream = gvc_mixer_control_get_stream_from_device (control, output); + if (stream == NULL) { + gvc_mixer_control_change_profile_on_selected_device (control, + output, NULL); + return; + } + + if (!gvc_mixer_ui_device_has_ports (output)) { + g_debug ("Did we try to move to a software/bluetooth sink ?"); + if (!gvc_mixer_control_set_default_sink (control, stream)) { + g_warning ("Failed to set default sink with stream from output %s", + gvc_mixer_ui_device_get_description (output)); + } + return; + } + + active_port = gvc_mixer_stream_get_port (stream); + output_port = gvc_mixer_ui_device_get_port (output); + /* First ensure the correct port is active on the sink */ + if (g_strcmp0 (active_port->port, output_port) != 0) { + g_debug ("Port change, switch to = %s", output_port); + if (gvc_mixer_stream_change_port (stream, output_port) == FALSE) { + g_warning ("Could not change port !"); + return; + } + } + + default_stream = gvc_mixer_control_get_default_sink (control); + + /* Finally if we are not on the correct stream, swap over. */ + if (stream != default_stream) { + g_debug ("Attempting to swap over to stream %s ", + gvc_mixer_stream_get_description (stream)); + if (!gvc_mixer_control_set_default_sink (control, stream)) { + g_warning ("Failed to set default sink from output %s", + gvc_mixer_ui_device_get_description (output)); + } + } +} + + +/** + * gvc_mixer_control_change_input: + * @control: + * @input: + * This method is called from the UI when the user selects a previously unselected device. + * - Firstly it queries the stream from the device. + * - It assumes that if the stream is null that it cannot be a bluetooth or network stream (they never show unless they have valid sinks and sources) + * In the scenario of a NULL stream on the device + * - It fetches the device's preferred profile or if NULL the profile with the highest priority on that device. + * - It then caches this device in control->priv->cached_desired_input_id so that when the update_source triggered + * from when we attempt to change profile we will know exactly what device to highlight on that stream. + * - It attempts to swap the profile on the card from that device and returns. + * - Next, it handles network or bluetooth streams that only require their stream to be made the default. + * - Next it deals with port changes so if the stream's active port is not the same as the port on the device + * it will attempt to change the port on that stream to be same as the device. If this fails it will return. + * - Finally it will set this new stream to be the default stream and emit a signal for the UI confirming the active input device. + */ +void +gvc_mixer_control_change_input (GvcMixerControl *control, + GvcMixerUIDevice* input) +{ + GvcMixerStream *stream; + GvcMixerStream *default_stream; + const GvcMixerStreamPort *active_port; + const gchar *input_port; + + g_return_if_fail (GVC_IS_MIXER_CONTROL (control)); + g_return_if_fail (GVC_IS_MIXER_UI_DEVICE (input)); + + stream = gvc_mixer_control_get_stream_from_device (control, input); + if (stream == NULL) { + gvc_mixer_control_change_profile_on_selected_device (control, + input, NULL); + return; + } + + if (!gvc_mixer_ui_device_has_ports (input)) { + g_debug ("Did we try to move to a software/bluetooth source ?"); + if (! gvc_mixer_control_set_default_source (control, stream)) { + g_warning ("Failed to set default source with stream from input %s", + gvc_mixer_ui_device_get_description (input)); + } + return; + } + + active_port = gvc_mixer_stream_get_port (stream); + input_port = gvc_mixer_ui_device_get_port (input); + /* First ensure the correct port is active on the sink */ + if (g_strcmp0 (active_port->port, input_port) != 0) { + g_debug ("Port change, switch to = %s", input_port); + if (gvc_mixer_stream_change_port (stream, input_port) == FALSE) { + g_warning ("Could not change port!"); + return; + } + } + + default_stream = gvc_mixer_control_get_default_source (control); + + /* Finally if we are not on the correct stream, swap over. */ + if (stream != default_stream) { + g_debug ("change-input - attempting to swap over to stream %s", + gvc_mixer_stream_get_description (stream)); + if (!gvc_mixer_control_set_default_source (control, stream)) { + g_warning ("Failed to set default source from input %s", + gvc_mixer_ui_device_get_description (input)); + } + } +} + + +static void +listify_hash_values_hfunc (gpointer key, + gpointer value, + gpointer user_data) +{ + GSList **list = user_data; + + *list = g_slist_prepend (*list, value); +} + +static int +gvc_name_collate (const char *namea, + const char *nameb) +{ + if (nameb == NULL && namea == NULL) + return 0; + if (nameb == NULL) + return 1; + if (namea == NULL) + return -1; + + return g_utf8_collate (namea, nameb); +} + +static int +gvc_card_collate (GvcMixerCard *a, + GvcMixerCard *b) +{ + const char *namea; + const char *nameb; + + g_return_val_if_fail (a == NULL || GVC_IS_MIXER_CARD (a), 0); + g_return_val_if_fail (b == NULL || GVC_IS_MIXER_CARD (b), 0); + + namea = gvc_mixer_card_get_name (a); + nameb = gvc_mixer_card_get_name (b); + + return gvc_name_collate (namea, nameb); +} + +/** + * gvc_mixer_control_get_cards: + * @control: + * + * Returns: (transfer container) (element-type Gvc.MixerCard): + */ +GSList * +gvc_mixer_control_get_cards (GvcMixerControl *control) +{ + GSList *retval; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + retval = NULL; + g_hash_table_foreach (control->priv->cards, + listify_hash_values_hfunc, + &retval); + return g_slist_sort (retval, (GCompareFunc) gvc_card_collate); +} + +static int +gvc_stream_collate (GvcMixerStream *a, + GvcMixerStream *b) +{ + const char *namea; + const char *nameb; + + g_return_val_if_fail (a == NULL || GVC_IS_MIXER_STREAM (a), 0); + g_return_val_if_fail (b == NULL || GVC_IS_MIXER_STREAM (b), 0); + + namea = gvc_mixer_stream_get_name (a); + nameb = gvc_mixer_stream_get_name (b); + + return gvc_name_collate (namea, nameb); +} + +/** + * gvc_mixer_control_get_streams: + * @control: + * + * Returns: (transfer container) (element-type Gvc.MixerStream): + */ +GSList * +gvc_mixer_control_get_streams (GvcMixerControl *control) +{ + GSList *retval; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + retval = NULL; + g_hash_table_foreach (control->priv->all_streams, + listify_hash_values_hfunc, + &retval); + return g_slist_sort (retval, (GCompareFunc) gvc_stream_collate); +} + +/** + * gvc_mixer_control_get_sinks: + * @control: + * + * Returns: (transfer container) (element-type Gvc.MixerSink): + */ +GSList * +gvc_mixer_control_get_sinks (GvcMixerControl *control) +{ + GSList *retval; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + retval = NULL; + g_hash_table_foreach (control->priv->sinks, + listify_hash_values_hfunc, + &retval); + return g_slist_sort (retval, (GCompareFunc) gvc_stream_collate); +} + +/** + * gvc_mixer_control_get_sources: + * @control: + * + * Returns: (transfer container) (element-type Gvc.MixerSource): + */ +GSList * +gvc_mixer_control_get_sources (GvcMixerControl *control) +{ + GSList *retval; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + retval = NULL; + g_hash_table_foreach (control->priv->sources, + listify_hash_values_hfunc, + &retval); + return g_slist_sort (retval, (GCompareFunc) gvc_stream_collate); +} + +/** + * gvc_mixer_control_get_sink_inputs: + * @control: + * + * Returns: (transfer container) (element-type Gvc.MixerSinkInput): + */ +GSList * +gvc_mixer_control_get_sink_inputs (GvcMixerControl *control) +{ + GSList *retval; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + retval = NULL; + g_hash_table_foreach (control->priv->sink_inputs, + listify_hash_values_hfunc, + &retval); + return g_slist_sort (retval, (GCompareFunc) gvc_stream_collate); +} + +/** + * gvc_mixer_control_get_source_outputs: + * @control: + * + * Returns: (transfer container) (element-type Gvc.MixerSourceOutput): + */ +GSList * +gvc_mixer_control_get_source_outputs (GvcMixerControl *control) +{ + GSList *retval; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), NULL); + + retval = NULL; + g_hash_table_foreach (control->priv->source_outputs, + listify_hash_values_hfunc, + &retval); + return g_slist_sort (retval, (GCompareFunc) gvc_stream_collate); +} + +static void +dec_outstanding (GvcMixerControl *control) +{ + if (control->priv->n_outstanding <= 0) { + return; + } + + if (--control->priv->n_outstanding <= 0) { + control->priv->state = GVC_STATE_READY; + g_signal_emit (G_OBJECT (control), signals[STATE_CHANGED], 0, GVC_STATE_READY); + } +} + +GvcMixerControlState +gvc_mixer_control_get_state (GvcMixerControl *control) +{ + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), GVC_STATE_CLOSED); + + return control->priv->state; +} + +static void +on_default_source_port_notify (GObject *object, + GParamSpec *pspec, + GvcMixerControl *control) +{ + char *port; + GvcMixerUIDevice *input; + + g_object_get (object, "port", &port, NULL); + input = gvc_mixer_control_lookup_device_from_stream (control, + GVC_MIXER_STREAM (object)); + + g_debug ("on_default_source_port_notify - moved to port '%s' which SHOULD ?? correspond to output '%s'", + port, + gvc_mixer_ui_device_get_description (input)); + + g_signal_emit (G_OBJECT (control), + signals[ACTIVE_INPUT_UPDATE], + 0, + gvc_mixer_ui_device_get_id (input)); + + g_free (port); +} + + +static void +_set_default_source (GvcMixerControl *control, + GvcMixerStream *stream) +{ + guint new_id; + + if (stream == NULL) { + if (!control->priv->default_source_is_set) + return; + + g_signal_handlers_disconnect_by_func (gvc_mixer_control_get_default_source (control), + on_default_source_port_notify, + control); + + control->priv->default_source_id = 0; + control->priv->default_source_is_set = FALSE; + g_signal_emit (control, + signals[DEFAULT_SOURCE_CHANGED], + 0, + PA_INVALID_INDEX); + return; + } + + new_id = gvc_mixer_stream_get_id (stream); + + if (control->priv->default_source_id != new_id) { + GvcMixerUIDevice *input; + + if (control->priv->default_source_is_set) { + g_signal_handlers_disconnect_by_func (gvc_mixer_control_get_default_source (control), + on_default_source_port_notify, + control); + } + + g_signal_connect (stream, + "notify::port", + G_CALLBACK (on_default_source_port_notify), + control); + + control->priv->default_source_id = new_id; + control->priv->default_source_is_set = TRUE; + g_signal_emit (control, + signals[DEFAULT_SOURCE_CHANGED], + 0, + new_id); + + input = gvc_mixer_control_lookup_device_from_stream (control, stream); + if (input) { + g_signal_emit (G_OBJECT (control), + signals[ACTIVE_INPUT_UPDATE], + 0, + gvc_mixer_ui_device_get_id (input)); + } else { + g_warning ("Can't find input for stream-id %d",new_id); + } + } +} + +static void +on_default_sink_port_notify (GObject *object, + GParamSpec *pspec, + GvcMixerControl *control) +{ + char *port; + GvcMixerUIDevice *output; + + g_object_get (object, "port", &port, NULL); + + output = gvc_mixer_control_lookup_device_from_stream (control, + GVC_MIXER_STREAM (object)); + if (output != NULL) { + g_debug ("on_default_sink_port_notify - moved to port %s - which SHOULD correspond to output %s", + port, + gvc_mixer_ui_device_get_description (output)); + g_signal_emit (G_OBJECT (control), + signals[ACTIVE_OUTPUT_UPDATE], + 0, + gvc_mixer_ui_device_get_id (output)); + } + g_free (port); +} + +static void +_set_default_sink (GvcMixerControl *control, + GvcMixerStream *stream) +{ + guint new_id; + + if (stream == NULL) { + /* Don't tell front-ends about an unset default + * sink if it's already unset */ + if (control->priv->default_sink_is_set == FALSE) + return; + + g_signal_handlers_disconnect_by_func (gvc_mixer_control_get_default_sink (control), + on_default_sink_port_notify, + control); + + control->priv->default_sink_id = 0; + control->priv->default_sink_is_set = FALSE; + g_signal_emit (control, + signals[DEFAULT_SINK_CHANGED], + 0, + PA_INVALID_INDEX); + return; + } + + new_id = gvc_mixer_stream_get_id (stream); + + if (control->priv->default_sink_id != new_id) { + GvcMixerUIDevice *output; + if (control->priv->default_sink_is_set) { + g_signal_handlers_disconnect_by_func (gvc_mixer_control_get_default_sink (control), + on_default_sink_port_notify, + control); + } + + control->priv->default_sink_id = new_id; + + control->priv->default_sink_is_set = TRUE; + g_signal_emit (control, + signals[DEFAULT_SINK_CHANGED], + 0, + new_id); + + g_signal_connect (stream, + "notify::port", + G_CALLBACK (on_default_sink_port_notify), + control); + + output = gvc_mixer_control_lookup_device_from_stream (control, stream); + + g_debug ("active_sink change"); + + g_signal_emit (G_OBJECT (control), + signals[ACTIVE_OUTPUT_UPDATE], + 0, + gvc_mixer_ui_device_get_id (output)); + } +} + +static gboolean +_stream_has_name (gpointer key, + GvcMixerStream *stream, + const char *name) +{ + const char *t_name; + + t_name = gvc_mixer_stream_get_name (stream); + + if (t_name != NULL + && name != NULL + && strcmp (t_name, name) == 0) { + return TRUE; + } + + return FALSE; +} + +static GvcMixerStream * +find_stream_for_name (GvcMixerControl *control, + const char *name) +{ + GvcMixerStream *stream; + + stream = g_hash_table_find (control->priv->all_streams, + (GHRFunc)_stream_has_name, + (char *)name); + return stream; +} + +static void +update_default_source_from_name (GvcMixerControl *control, + const char *name) +{ + gboolean changed = FALSE; + + if ((control->priv->default_source_name == NULL + && name != NULL) + || (control->priv->default_source_name != NULL + && name == NULL) + || (name != NULL && strcmp (control->priv->default_source_name, name) != 0)) { + changed = TRUE; + } + + if (changed) { + GvcMixerStream *stream; + + g_free (control->priv->default_source_name); + control->priv->default_source_name = g_strdup (name); + + stream = find_stream_for_name (control, name); + _set_default_source (control, stream); + } +} + +static void +update_default_sink_from_name (GvcMixerControl *control, + const char *name) +{ + gboolean changed = FALSE; + + if ((control->priv->default_sink_name == NULL + && name != NULL) + || (control->priv->default_sink_name != NULL + && name == NULL) + || (name != NULL && strcmp (control->priv->default_sink_name, name) != 0)) { + changed = TRUE; + } + + if (changed) { + GvcMixerStream *stream; + g_free (control->priv->default_sink_name); + control->priv->default_sink_name = g_strdup (name); + + stream = find_stream_for_name (control, name); + _set_default_sink (control, stream); + } +} + +static void +update_server (GvcMixerControl *control, + const pa_server_info *info) +{ + if (info->default_source_name != NULL) { + update_default_source_from_name (control, info->default_source_name); + } + if (info->default_sink_name != NULL) { + g_debug ("update server"); + update_default_sink_from_name (control, info->default_sink_name); + } +} + +static void +remove_stream (GvcMixerControl *control, + GvcMixerStream *stream) +{ + guint id; + + g_object_ref (stream); + + id = gvc_mixer_stream_get_id (stream); + + if (id == control->priv->default_sink_id) { + _set_default_sink (control, NULL); + } else if (id == control->priv->default_source_id) { + _set_default_source (control, NULL); + } + + g_hash_table_remove (control->priv->all_streams, + GUINT_TO_POINTER (id)); + g_signal_emit (G_OBJECT (control), + signals[STREAM_REMOVED], + 0, + gvc_mixer_stream_get_id (stream)); + g_object_unref (stream); +} + +/** + * add_stream: (skip) + * @control: The control to add the stream to + * @stream:(transfer full): The stream to add + * + * Add a stream to the hash table of all known streams + */ +static void +add_stream (GvcMixerControl *control, + GvcMixerStream *stream) +{ + g_hash_table_insert (control->priv->all_streams, + GUINT_TO_POINTER (gvc_mixer_stream_get_id (stream)), + stream); + g_signal_emit (G_OBJECT (control), + signals[STREAM_ADDED], + 0, + gvc_mixer_stream_get_id (stream)); +} + +/* This method will match individual stream ports against its corresponding device + * It does this by: + * - iterates through our devices and finds the one where the card-id on the device is the same as the card-id on the stream + * and the port-name on the device is the same as the streamport-name. + * This should always find a match and is used exclusively by sync_devices(). + */ +static gboolean +match_stream_with_devices (GvcMixerControl *control, + GvcMixerStreamPort *stream_port, + GvcMixerStream *stream, + gboolean is_bluetooth) +{ + g_autoptr (GList) devices = NULL; + guint stream_card_id; + guint stream_id; + gboolean in_possession = FALSE; + + stream_id = gvc_mixer_stream_get_id (stream); + stream_card_id = gvc_mixer_stream_get_card_index (stream); + + devices = g_hash_table_get_values (GVC_IS_MIXER_SOURCE (stream) ? control->priv->ui_inputs : control->priv->ui_outputs); + + for (GList *d = devices; d != NULL; d = d->next) { + GvcMixerUIDevice *device; + guint device_stream_id; + g_autofree gchar *device_port_name = NULL; + g_autofree gchar *origin = NULL; + g_autofree gchar *description = NULL; + GvcMixerCard *card; + guint card_id; + + device = d->data; + g_object_get (G_OBJECT (device), + "stream-id", &device_stream_id, + "card", &card, + "origin", &origin, + "description", &description, + "port-name", &device_port_name, + NULL); + + if (card == NULL) { + if (device_stream_id == stream_id) { + g_debug ("Matched stream %u with card-less device '%s', with stream already setup", + stream_id, description); + in_possession = TRUE; + } + } else { + card_id = gvc_mixer_card_get_index (card); + + g_debug ("Attempt to match_stream update_with_existing_outputs - Try description : '%s', origin : '%s', device port name : '%s', card : %p, AGAINST stream port: '%s', sink card id %i", + description, + origin, + device_port_name, + card, + stream_port->port, + stream_card_id); + + if (stream_card_id == card_id) { + if (g_strcmp0 (device_port_name, stream_port->port) == 0) { + g_debug ("Match device with stream: We have a match with description: '%s', origin: '%s', cached already with device id %u, so set stream id to %i", + description, + origin, + gvc_mixer_ui_device_get_id (device), + stream_id); + + g_object_set (G_OBJECT (device), + "stream-id", stream_id, + NULL); + in_possession = TRUE; + } else { + /* Other UI devices on that card that match the stream can't be valid */ + if (device_stream_id == stream_id && is_bluetooth) { + g_object_set (G_OBJECT (device), + "stream-id", GVC_MIXER_UI_DEVICE_INVALID, + NULL); + g_debug ("Found another UI device for this stream: %d, resetting", stream_id); + } + } + } + } + } + + return in_possession; +} + + +/* Clear stream-id from all UI devices that reference the stream that lost all ports */ +static void +clear_stream_from_devices (GvcMixerControl *control, + GvcMixerStream *stream) +{ + g_autoptr (GList) devices = NULL; + guint stream_id; + + stream_id = gvc_mixer_stream_get_id (stream); + devices = g_hash_table_get_values (GVC_IS_MIXER_SOURCE (stream) ? control->priv->ui_inputs : control->priv->ui_outputs); + + for (GList *d = devices; d != NULL; d = d->next) { + guint device_stream_id; + GvcMixerUIDevice *device = d->data; + + g_object_get (G_OBJECT (device), + "stream-id", &device_stream_id, + NULL); + + if (device_stream_id == stream_id) { + g_object_set (G_OBJECT (device), + "stream-id", GVC_MIXER_UI_DEVICE_INVALID, + NULL); + g_debug ("Clearing stream-id: %d", stream_id); + } + } +} + +/* + * This method attempts to match a sink or source with its relevant UI device. + * GvcMixerStream can represent both a sink or source. + * Using static card port introspection implies that we know beforehand what + * outputs and inputs are available to the user. + * But that does not mean that all of these inputs and outputs are available to be used. + * For instance we might be able to see that there is a HDMI port available but if + * we are on the default analog stereo output profile there is no valid sink for + * that HDMI device. We first need to change profile and when update_sink() is called + * only then can we match the new hdmi sink with its corresponding device. + * + * Firstly it checks to see if the incoming stream has no ports. + * - If a stream has no ports and no valid card id, it goes ahead and makes a new + * device (software/network devices are only detectable at the sink/source level) + * If the stream has ports it will match each port against the stream using match_stream_with_devices(). + * + * This method should always find a match. + */ +static void +sync_devices (GvcMixerControl *control, + GvcMixerStream* stream, + gboolean is_new, + gboolean is_bluetooth) +{ + /* Go through ports to see what outputs can be created. */ + const GList *stream_ports; + const GList *n = NULL; + gboolean is_output = !GVC_IS_MIXER_SOURCE (stream); + + stream_ports = gvc_mixer_stream_get_ports (stream); + + if (stream_ports == NULL && is_bluetooth) { + clear_stream_from_devices (control, stream); + return; + } + + if (stream_ports == NULL && is_new) { + GvcMixerUIDevice *device; + GObject *object; + + object = g_object_new (GVC_TYPE_MIXER_UI_DEVICE, + "stream-id", gvc_mixer_stream_get_id (stream), + "description", gvc_mixer_stream_get_description (stream), + "origin", "", /* Leave it empty for these special cases */ + "port-name", NULL, + "port-available", TRUE, + "icon-name", gvc_mixer_stream_get_icon_name (stream), + NULL); + device = GVC_MIXER_UI_DEVICE (object); + + g_hash_table_insert (is_output ? control->priv->ui_outputs : control->priv->ui_inputs, + GUINT_TO_POINTER (gvc_mixer_ui_device_get_id (device)), + device); + + g_signal_emit (G_OBJECT (control), + signals[is_output ? OUTPUT_ADDED : INPUT_ADDED], + 0, + gvc_mixer_ui_device_get_id (device)); + + return; + } + + /* Go ahead and make sure to match each port against a previously created device */ + for (n = stream_ports; n != NULL; n = n->next) { + + GvcMixerStreamPort *stream_port; + stream_port = n->data; + + if (match_stream_with_devices (control, stream_port, stream, is_bluetooth)) + continue; + + g_warning ("Sync_devices: Failed to match stream id: %u, description: '%s', origin: '%s'", + gvc_mixer_stream_get_id (stream), + stream_port->human_port, + gvc_mixer_stream_get_description (stream)); + } +} + +static void +set_icon_name_from_proplist (GvcMixerStream *stream, + pa_proplist *l, + const char *default_icon_name) +{ + const char *t; + + if ((t = pa_proplist_gets (l, PA_PROP_DEVICE_ICON_NAME))) { + goto finish; + } + + if ((t = pa_proplist_gets (l, PA_PROP_MEDIA_ICON_NAME))) { + goto finish; + } + + if ((t = pa_proplist_gets (l, PA_PROP_WINDOW_ICON_NAME))) { + goto finish; + } + + if ((t = pa_proplist_gets (l, PA_PROP_APPLICATION_ICON_NAME))) { + goto finish; + } + + if ((t = pa_proplist_gets (l, PA_PROP_MEDIA_ROLE))) { + + if (strcmp (t, "video") == 0 || + strcmp (t, "phone") == 0) { + goto finish; + } + + if (strcmp (t, "music") == 0) { + t = "audio"; + goto finish; + } + + if (strcmp (t, "game") == 0) { + t = "applications-games"; + goto finish; + } + + if (strcmp (t, "event") == 0) { + t = "dialog-information"; + goto finish; + } + } + + t = default_icon_name; + + finish: + gvc_mixer_stream_set_icon_name (stream, t); +} + +static GvcMixerStreamState - translate_pa_state (pa_sink_state_t state) { ++translate_pa_sink_state (pa_sink_state_t state) { + switch (state) { + case PA_SINK_RUNNING: + return GVC_STREAM_STATE_RUNNING; + case PA_SINK_IDLE: + return GVC_STREAM_STATE_IDLE; + case PA_SINK_SUSPENDED: + return GVC_STREAM_STATE_SUSPENDED; + case PA_SINK_INIT: + case PA_SINK_INVALID_STATE: + case PA_SINK_UNLINKED: + default: + return GVC_STREAM_STATE_INVALID; + } +} + ++static GvcMixerStreamState ++translate_pa_source_state (pa_source_state_t state) { ++ switch (state) { ++ case PA_SOURCE_RUNNING: ++ return GVC_STREAM_STATE_RUNNING; ++ case PA_SOURCE_IDLE: ++ return GVC_STREAM_STATE_IDLE; ++ case PA_SOURCE_SUSPENDED: ++ return GVC_STREAM_STATE_SUSPENDED; ++ case PA_SOURCE_INVALID_STATE: ++ default: ++ return GVC_STREAM_STATE_INVALID; ++ } ++} ++ +static gboolean +is_bluetooth (const pa_proplist *proplist) +{ + const char *bus = pa_proplist_gets (proplist, "device.bus"); + + if (bus == NULL) + return FALSE; + + if (g_str_equal ("bluetooth", bus)) + return TRUE; + + return FALSE; +} + +/* + * Called when anything changes with a sink. + */ +static void +update_sink (GvcMixerControl *control, + const pa_sink_info *info) +{ + GvcMixerStream *stream; + gboolean is_new; + pa_volume_t max_volume; + GvcChannelMap *map; + char map_buff[PA_CHANNEL_MAP_SNPRINT_MAX]; + GList *list = NULL; + gboolean is_bt; + + pa_channel_map_snprint (map_buff, PA_CHANNEL_MAP_SNPRINT_MAX, &info->channel_map); +#if 1 + g_debug ("Updating sink: index=%u name='%s' description='%s' map='%s'", + info->index, + info->name, + info->description, + map_buff); +#endif + + map = NULL; + is_new = FALSE; + stream = g_hash_table_lookup (control->priv->sinks, + GUINT_TO_POINTER (info->index)); + + if (stream == NULL) { + map = gvc_channel_map_new_from_pa_channel_map (&info->channel_map); + stream = gvc_mixer_sink_new (control->priv->pa_context, + info->index, + map); + g_object_unref (map); + is_new = TRUE; + + } else if (gvc_mixer_stream_is_running (stream)) { + /* Ignore events if volume changes are outstanding */ + g_debug ("Ignoring event, volume changes are outstanding"); + return; + } + + for (guint i = 0; i < info->n_ports; i++) { + GvcMixerStreamPort *port; + + port = g_slice_new0 (GvcMixerStreamPort); + port->port = g_strdup (info->ports[i]->name); + port->human_port = g_strdup (info->ports[i]->description); + port->priority = info->ports[i]->priority; + port->available = info->ports[i]->available != PA_PORT_AVAILABLE_NO; + + list = g_list_prepend (list, port); + } + gvc_mixer_stream_set_ports (stream, g_steal_pointer (&list)); + + max_volume = pa_cvolume_max (&info->volume); + gvc_mixer_stream_set_name (stream, info->name); + gvc_mixer_stream_set_card_index (stream, info->card); + gvc_mixer_stream_set_description (stream, info->description); + set_icon_name_from_proplist (stream, info->proplist, "audio-card"); + gvc_mixer_stream_set_form_factor (stream, pa_proplist_gets (info->proplist, PA_PROP_DEVICE_FORM_FACTOR)); + gvc_mixer_stream_set_sysfs_path (stream, pa_proplist_gets (info->proplist, "sysfs.path")); + gvc_mixer_stream_set_volume (stream, (guint)max_volume); + gvc_mixer_stream_set_is_muted (stream, info->mute); + gvc_mixer_stream_set_can_decibel (stream, !!(info->flags & PA_SINK_DECIBEL_VOLUME)); + gvc_mixer_stream_set_base_volume (stream, (guint32) info->base_volume); - gvc_mixer_stream_set_state (stream, translate_pa_state (info->state)); ++ gvc_mixer_stream_set_state (stream, translate_pa_sink_state (info->state)); + + is_bt = is_bluetooth (info->proplist); + /* Sync devices as the port on the stream might have changed */ + if (!is_new) + sync_devices (control, stream, is_new, is_bt); + + /* Messy I know but to set the port everytime regardless of whether it has changed will cost us a + * port change notify signal which causes the frontend to resync. + * Only update the UI when something has changed. */ + if (info->active_port != NULL) { + if (is_new) + gvc_mixer_stream_set_port (stream, info->active_port->name); + else { + const GvcMixerStreamPort *active_port; + active_port = gvc_mixer_stream_get_port (stream); + if (active_port == NULL || + g_strcmp0 (active_port->port, info->active_port->name) != 0) { + g_debug ("update sink - apparently a port update"); + if (!gvc_mixer_stream_set_port (stream, info->active_port->name)) + g_warning ("Port update to of %d '%s' failed", info->index, info->active_port->name); + } + } + } + + if (is_new) { + g_debug ("update sink - is new"); + + g_hash_table_insert (control->priv->sinks, + GUINT_TO_POINTER (info->index), + g_object_ref (stream)); + add_stream (control, stream); + /* Always sync on a new stream to able to assign the right stream id + * to the appropriate outputs (multiple potential outputs per stream). */ + sync_devices (control, stream, is_new, is_bt); + } else { + g_signal_emit (G_OBJECT (control), + signals[STREAM_CHANGED], + 0, + gvc_mixer_stream_get_id (stream)); + } + + /* + * When we change profile on a device that is not the server default sink, + * it will jump back to the default sink set by the server to prevent the audio setup from being 'outputless'. + * All well and good but then when we get the new stream created for the new profile how do we know + * that this is the intended default or selected device the user wishes to use. + * This is messy but it's the only reliable way that it can be done without ripping the whole thing apart. + */ + if (control->priv->profile_swapping_device_id != GVC_MIXER_UI_DEVICE_INVALID) { + GvcMixerUIDevice *dev = NULL; + dev = gvc_mixer_control_lookup_output_id (control, control->priv->profile_swapping_device_id); + if (dev != NULL) { + /* now check to make sure this new stream is the same stream just matched and set on the device object */ + if (gvc_mixer_ui_device_get_stream_id (dev) == gvc_mixer_stream_get_id (stream)) { + g_debug ("Looks like we profile swapped on a non server default sink"); + gvc_mixer_control_set_default_sink (control, stream); + control->priv->profile_swapping_device_id = GVC_MIXER_UI_DEVICE_INVALID; + } + } + } + + if (control->priv->default_sink_name != NULL + && info->name != NULL + && strcmp (control->priv->default_sink_name, info->name) == 0) { + _set_default_sink (control, stream); + } + + if (map == NULL) + map = (GvcChannelMap *) gvc_mixer_stream_get_channel_map (stream); + + gvc_channel_map_volume_changed (map, &info->volume, FALSE); +} + + +static void +update_source (GvcMixerControl *control, + const pa_source_info *info) +{ + GvcMixerStream *stream; + gboolean is_new; + pa_volume_t max_volume; + GList *list = NULL; + gboolean is_bt; + +#if 1 + g_debug ("Updating source: index=%u name='%s' description='%s'", + info->index, + info->name, + info->description); +#endif + + /* completely ignore monitors, they're not real sources */ + if (info->monitor_of_sink != PA_INVALID_INDEX) { + return; + } + + is_new = FALSE; + + stream = g_hash_table_lookup (control->priv->sources, + GUINT_TO_POINTER (info->index)); + if (stream == NULL) { + GvcChannelMap *map; + + map = gvc_channel_map_new_from_pa_channel_map (&info->channel_map); + stream = gvc_mixer_source_new (control->priv->pa_context, + info->index, + map); + g_object_unref (map); + is_new = TRUE; + } else if (gvc_mixer_stream_is_running (stream)) { + /* Ignore events if volume changes are outstanding */ + g_debug ("Ignoring event, volume changes are outstanding"); + return; + } + + for (guint i = 0; i < info->n_ports; i++) { + GvcMixerStreamPort *port; + + port = g_slice_new0 (GvcMixerStreamPort); + port->port = g_strdup (info->ports[i]->name); + port->human_port = g_strdup (info->ports[i]->description); + port->priority = info->ports[i]->priority; + list = g_list_prepend (list, port); + } + gvc_mixer_stream_set_ports (stream, list); + + max_volume = pa_cvolume_max (&info->volume); + + gvc_mixer_stream_set_name (stream, info->name); + gvc_mixer_stream_set_card_index (stream, info->card); + gvc_mixer_stream_set_description (stream, info->description); + set_icon_name_from_proplist (stream, info->proplist, "audio-input-microphone"); + gvc_mixer_stream_set_form_factor (stream, pa_proplist_gets (info->proplist, PA_PROP_DEVICE_FORM_FACTOR)); + gvc_mixer_stream_set_volume (stream, (guint)max_volume); + gvc_mixer_stream_set_is_muted (stream, info->mute); + gvc_mixer_stream_set_can_decibel (stream, !!(info->flags & PA_SOURCE_DECIBEL_VOLUME)); + gvc_mixer_stream_set_base_volume (stream, (guint32) info->base_volume); ++ gvc_mixer_stream_set_state (stream, translate_pa_source_state (info->state)); + g_debug ("update source"); + + is_bt = is_bluetooth (info->proplist); + /* Sync devices as the port on the stream might have changed */ + if (!is_new) + sync_devices (control, stream, is_new, is_bt); + + if (info->active_port != NULL) { + if (is_new) + gvc_mixer_stream_set_port (stream, info->active_port->name); + else { + const GvcMixerStreamPort *active_port; + active_port = gvc_mixer_stream_get_port (stream); + if (active_port == NULL || + g_strcmp0 (active_port->port, info->active_port->name) != 0) { + g_debug ("update source - apparently a port update"); + if (!gvc_mixer_stream_set_port (stream, info->active_port->name)) + g_warning ("Port update to of %d '%s' failed", info->index, info->active_port->name); + } + } + } + + if (is_new) { + g_hash_table_insert (control->priv->sources, + GUINT_TO_POINTER (info->index), + g_object_ref (stream)); + add_stream (control, stream); + sync_devices (control, stream, is_new, is_bt); + } else { + g_signal_emit (G_OBJECT (control), + signals[STREAM_CHANGED], + 0, + gvc_mixer_stream_get_id (stream)); + } + + if (control->priv->profile_swapping_device_id != GVC_MIXER_UI_DEVICE_INVALID) { + GvcMixerUIDevice *dev = NULL; + + dev = gvc_mixer_control_lookup_input_id (control, control->priv->profile_swapping_device_id); + + if (dev != NULL) { + /* now check to make sure this new stream is the same stream just matched and set on the device object */ + if (gvc_mixer_ui_device_get_stream_id (dev) == gvc_mixer_stream_get_id (stream)) { + g_debug ("Looks like we profile swapped on a non server default source"); + gvc_mixer_control_set_default_source (control, stream); + control->priv->profile_swapping_device_id = GVC_MIXER_UI_DEVICE_INVALID; + } + } + } + if (control->priv->default_source_name != NULL + && info->name != NULL + && strcmp (control->priv->default_source_name, info->name) == 0) { + _set_default_source (control, stream); + } +} + +static void +set_is_event_stream_from_proplist (GvcMixerStream *stream, + pa_proplist *l) +{ + const char *t; + gboolean is_event_stream; + + is_event_stream = FALSE; + + if ((t = pa_proplist_gets (l, PA_PROP_MEDIA_ROLE))) { + if (g_str_equal (t, "event")) + is_event_stream = TRUE; + } + + gvc_mixer_stream_set_is_event_stream (stream, is_event_stream); +} + +static void +set_application_id_from_proplist (GvcMixerStream *stream, + pa_proplist *l) +{ + const char *t; + + if ((t = pa_proplist_gets (l, PA_PROP_APPLICATION_ID))) { + gvc_mixer_stream_set_application_id (stream, t); + } +} + +static void +update_sink_input (GvcMixerControl *control, + const pa_sink_input_info *info) +{ + GvcMixerStream *stream; + gboolean is_new; + pa_volume_t max_volume; + const char *name; + +#if 0 + g_debug ("Updating sink input: index=%u name='%s' client=%u sink=%u", + info->index, + info->name, + info->client, + info->sink); +#endif + + is_new = FALSE; + + stream = g_hash_table_lookup (control->priv->sink_inputs, + GUINT_TO_POINTER (info->index)); + if (stream == NULL) { + GvcChannelMap *map; + map = gvc_channel_map_new_from_pa_channel_map (&info->channel_map); + stream = gvc_mixer_sink_input_new (control->priv->pa_context, + info->index, + map); + g_object_unref (map); + is_new = TRUE; + } else if (gvc_mixer_stream_is_running (stream)) { + /* Ignore events if volume changes are outstanding */ + g_debug ("Ignoring event, volume changes are outstanding"); + return; + } + + max_volume = pa_cvolume_max (&info->volume); + + name = (const char *)g_hash_table_lookup (control->priv->clients, + GUINT_TO_POINTER (info->client)); + gvc_mixer_stream_set_name (stream, name); + gvc_mixer_stream_set_description (stream, info->name); + + set_application_id_from_proplist (stream, info->proplist); + set_is_event_stream_from_proplist (stream, info->proplist); + set_icon_name_from_proplist (stream, info->proplist, "application-x-executable"); + gvc_mixer_stream_set_volume (stream, (guint)max_volume); + gvc_mixer_stream_set_is_muted (stream, info->mute); + gvc_mixer_stream_set_is_virtual (stream, info->client == PA_INVALID_INDEX); + + if (is_new) { + g_hash_table_insert (control->priv->sink_inputs, + GUINT_TO_POINTER (info->index), + g_object_ref (stream)); + add_stream (control, stream); + } else { + g_signal_emit (G_OBJECT (control), + signals[STREAM_CHANGED], + 0, + gvc_mixer_stream_get_id (stream)); + } +} + +static void +update_source_output (GvcMixerControl *control, + const pa_source_output_info *info) +{ + GvcMixerStream *stream; + gboolean is_new; + pa_volume_t max_volume; + const char *name; + +#if 1 + g_debug ("Updating source output: index=%u name='%s' client=%u source=%u", + info->index, + info->name, + info->client, + info->source); +#endif + + is_new = FALSE; + stream = g_hash_table_lookup (control->priv->source_outputs, + GUINT_TO_POINTER (info->index)); + if (stream == NULL) { + GvcChannelMap *map; + map = gvc_channel_map_new_from_pa_channel_map (&info->channel_map); + stream = gvc_mixer_source_output_new (control->priv->pa_context, + info->index, + map); + g_object_unref (map); + is_new = TRUE; + } + + name = (const char *)g_hash_table_lookup (control->priv->clients, + GUINT_TO_POINTER (info->client)); + + max_volume = pa_cvolume_max (&info->volume); + + gvc_mixer_stream_set_name (stream, name); + gvc_mixer_stream_set_description (stream, info->name); + set_application_id_from_proplist (stream, info->proplist); + set_is_event_stream_from_proplist (stream, info->proplist); + gvc_mixer_stream_set_volume (stream, (guint)max_volume); + gvc_mixer_stream_set_is_muted (stream, info->mute); + set_icon_name_from_proplist (stream, info->proplist, "audio-input-microphone"); + + if (is_new) { + g_hash_table_insert (control->priv->source_outputs, + GUINT_TO_POINTER (info->index), + g_object_ref (stream)); + add_stream (control, stream); + } else { + g_signal_emit (G_OBJECT (control), + signals[STREAM_CHANGED], + 0, + gvc_mixer_stream_get_id (stream)); + } +} + +static void +update_client (GvcMixerControl *control, + const pa_client_info *info) +{ +#if 1 + g_debug ("Updating client: index=%u name='%s'", + info->index, + info->name); +#endif + g_hash_table_insert (control->priv->clients, + GUINT_TO_POINTER (info->index), + g_strdup (info->name)); +} + +static char * +card_num_streams_to_status (guint sinks, + guint sources) +{ + char *sinks_str; + char *sources_str; + char *ret; + + if (sinks == 0 && sources == 0) { + /* translators: + * The device has been disabled */ + return g_strdup (_("Disabled")); + } + if (sinks == 0) { + sinks_str = NULL; + } else { + /* translators: + * The number of sound outputs on a particular device */ + sinks_str = g_strdup_printf (ngettext ("%u Output", + "%u Outputs", + sinks), + sinks); + } + if (sources == 0) { + sources_str = NULL; + } else { + /* translators: + * The number of sound inputs on a particular device */ + sources_str = g_strdup_printf (ngettext ("%u Input", + "%u Inputs", + sources), + sources); + } + if (sources_str == NULL) + return sinks_str; + if (sinks_str == NULL) + return sources_str; + ret = g_strdup_printf ("%s / %s", sinks_str, sources_str); + g_free (sinks_str); + g_free (sources_str); + return ret; +} + +/* + * A utility method to gather which card profiles are relevant to the port . + */ +static GList * +determine_profiles_for_port (pa_card_port_info *port, + const GList *card_profiles) +{ + guint i; + GList *supported_profiles = NULL; + const GList *p; + for (i = 0; i < port->n_profiles; i++) { + for (p = card_profiles; p != NULL; p = p->next) { + GvcMixerCardProfile *prof; + prof = p->data; + if (g_strcmp0 (port->profiles[i]->name, prof->profile) == 0) + supported_profiles = g_list_append (supported_profiles, prof); + } + } + g_debug ("%i profiles supported on port %s / %s", + g_list_length (supported_profiles), + port->description, port->name); + return g_list_sort (supported_profiles, (GCompareFunc) gvc_mixer_card_profile_compare); +} + +static gboolean +is_card_port_an_output (GvcMixerCardPort* port) +{ + return port->direction == PA_DIRECTION_OUTPUT ? TRUE : FALSE; +} + +/* + * This method will create a ui device for the given port. + */ +static void +update_ui_device_on_port_added (GvcMixerControl *control, + GvcMixerCardPort *port, + GvcMixerCard *card) +{ + GvcMixerUIDeviceDirection direction; + GObject *object; + GvcMixerUIDevice *uidevice; + gboolean available = port->available != PA_PORT_AVAILABLE_NO; + + direction = (is_card_port_an_output (port) == TRUE) ? UIDeviceOutput : UIDeviceInput; + + object = g_object_new (GVC_TYPE_MIXER_UI_DEVICE, + "type", (guint)direction, + "card", card, + "port-name", port->port, + "description", port->human_port, + "origin", gvc_mixer_card_get_name (card), + "port-available", available, + "icon-name", port->icon_name, + NULL); + + uidevice = GVC_MIXER_UI_DEVICE (object); + gvc_mixer_ui_device_set_profiles (uidevice, port->profiles); + + g_hash_table_insert (is_card_port_an_output (port) ? control->priv->ui_outputs : control->priv->ui_inputs, + GUINT_TO_POINTER (gvc_mixer_ui_device_get_id (uidevice)), + uidevice); + + + if (available) { + g_signal_emit (G_OBJECT (control), + signals[is_card_port_an_output (port) ? OUTPUT_ADDED : INPUT_ADDED], + 0, + gvc_mixer_ui_device_get_id (uidevice)); + } + + g_debug ("update_ui_device_on_port_added, direction %u, description '%s', origin '%s', port available %i", + direction, + port->human_port, + gvc_mixer_card_get_name (card), + available); +} + +static void +update_ui_device_on_port_changed (GvcMixerControl *control, + GvcMixerCardPort *card_port, + pa_card_port_info *new_port_info, + GvcMixerCard *card) +{ + GList *d; + GList *devices; + GvcMixerUIDevice *device; + gboolean is_output = is_card_port_an_output (card_port); + + devices = g_hash_table_get_values (is_output ? control->priv->ui_outputs : control->priv->ui_inputs); + + for (d = devices; d != NULL; d = d->next) { + GvcMixerCard *device_card; + gchar *device_port_name; + + device = d->data; + g_object_get (G_OBJECT (device), + "card", &device_card, + "port-name", &device_port_name, + NULL); + + if (g_strcmp0 (card_port->port, device_port_name) == 0 && + device_card == card) { + gboolean was_available; + gboolean is_available; + const GList *card_profiles = gvc_mixer_card_get_profiles (card); + + was_available = card_port->available != PA_PORT_AVAILABLE_NO; + is_available = new_port_info->available != PA_PORT_AVAILABLE_NO; + + g_debug ("Found the relevant device %s, update its port availability flag to %i, is_output %i", + device_port_name, + is_available, + is_output); + + card_port->available = new_port_info->available; + + g_list_free (card_port->profiles); + card_port->profiles = determine_profiles_for_port (new_port_info, card_profiles); + + gvc_mixer_ui_device_set_profiles (device, card_port->profiles); + + if (is_available != was_available) { + g_object_set (G_OBJECT (device), + "port-available", is_available, NULL); + g_signal_emit (G_OBJECT (control), + is_output ? signals[is_available ? OUTPUT_ADDED : OUTPUT_REMOVED] + : signals[is_available ? INPUT_ADDED : INPUT_REMOVED], + 0, + gvc_mixer_ui_device_get_id (device)); + } + } + g_free (device_port_name); + } + + g_list_free (devices); +} + +static void +maybe_remove_ui_device (GvcMixerControl *control, + GvcMixerUIDevice *device) +{ + /* We add UIDevices for ports or for streams, so remove them if the device now + * has neither. + */ + if (gvc_mixer_ui_device_get_stream_id (device) == GVC_MIXER_UI_DEVICE_INVALID && + !gvc_mixer_ui_device_has_ports (device)) { + gboolean is_output = gvc_mixer_ui_device_is_output (device); + + g_debug ("Removing UIDevice %s", + gvc_mixer_ui_device_get_description (device)); + + g_hash_table_remove (is_output ? control->priv->ui_outputs : control->priv->ui_inputs, + GUINT_TO_POINTER (gvc_mixer_ui_device_get_id (device))); + } +} + +static void +update_ui_device_on_port_removed (GvcMixerControl *control, + GvcMixerCardPort *card_port, + GvcMixerCard *card) +{ + GList *d; + GList *devices; + gboolean is_output = is_card_port_an_output (card_port); + + devices = g_hash_table_get_values (is_output ? control->priv->ui_outputs : control->priv->ui_inputs); + for (d = devices; d != NULL; d = d->next) { + GvcMixerUIDevice *device = d->data; + GvcMixerCard *device_card; + gchar *device_port_name; + + g_object_get (G_OBJECT (device), + "card", &device_card, + "port-name", &device_port_name, + NULL); + + if (g_strcmp0 (card_port->port, device_port_name) == 0 && device_card == card) { + g_object_set (G_OBJECT (device), + "card", NULL, + "port-name", NULL, + NULL); + + g_signal_emit (G_OBJECT (control), + signals[is_output ? OUTPUT_REMOVED : INPUT_REMOVED], + 0, + gvc_mixer_ui_device_get_id (device)); + + maybe_remove_ui_device (control, device); + } + + g_free (device_port_name); + } + + g_list_free (devices); +} + +#ifdef HAVE_ALSA +typedef struct { + char *port_name_to_set; + guint32 headset_card; +} PortStatusData; + +static void +port_status_data_free (PortStatusData *data) +{ + if (data == NULL) + return; + g_free (data->port_name_to_set); + g_free (data); +} + +/* + We need to re-enumerate sources and sinks every time the user makes a choice, + because they can change due to use interaction in other software (or policy + changes inside PulseAudio). Enumeration means PulseAudio will do a series of + callbacks, one for every source/sink. + Set the port when we find the correct source/sink. + */ + +static void +sink_info_cb (pa_context *c, + const pa_sink_info *i, + int eol, + void *userdata) +{ + PortStatusData *data = userdata; + pa_operation *o; + guint j; + const char *s; + + if (eol != 0) { + port_status_data_free (data); + return; + } + + if (i->card != data->headset_card) + return; + + s = data->port_name_to_set; + + if (i->active_port && + strcmp (i->active_port->name, s) == 0) + return; + + for (j = 0; j < i->n_ports; j++) + if (strcmp (i->ports[j]->name, s) == 0) + break; + + if (j >= i->n_ports) + return; + + o = pa_context_set_sink_port_by_index (c, i->index, s, NULL, NULL); + g_clear_pointer (&o, pa_operation_unref); +} + +static void +source_info_cb (pa_context *c, + const pa_source_info *i, + int eol, + void *userdata) +{ + PortStatusData *data = userdata; + pa_operation *o; + guint j; + const char *s; + + if (eol != 0) { + port_status_data_free (data); + return; + } + + if (i->card != data->headset_card) + return; + + s = data->port_name_to_set; + + for (j = 0; j < i->n_ports; j++) { + if (g_str_equal (i->ports[j]->name, s)) { + o = pa_context_set_default_source (c, + i->name, + NULL, + NULL); + if (o == NULL) { + g_warning ("pa_context_set_default_source() failed"); + return; + } + } + } + + if (i->active_port && strcmp (i->active_port->name, s) == 0) + return; + + for (j = 0; j < i->n_ports; j++) + if (strcmp (i->ports[j]->name, s) == 0) + break; + + if (j >= i->n_ports) + return; + + o = pa_context_set_source_port_by_index(c, i->index, s, NULL, NULL); + g_clear_pointer (&o, pa_operation_unref); +} + +static void +gvc_mixer_control_set_port_status_for_headset (GvcMixerControl *control, + guint id, + const char *port_name, + gboolean is_output) +{ + pa_operation *o; + PortStatusData *data; + + if (port_name == NULL) + return; + + data = g_new0 (PortStatusData, 1); + data->port_name_to_set = g_strdup (port_name); + data->headset_card = id; + + if (is_output) + o = pa_context_get_sink_info_list (control->priv->pa_context, sink_info_cb, data); + else + o = pa_context_get_source_info_list (control->priv->pa_context, source_info_cb, data); + + g_clear_pointer (&o, pa_operation_unref); +} +#endif /* HAVE_ALSA */ + +static void +free_priv_port_names (GvcMixerControl *control) +{ +#ifdef HAVE_ALSA + g_clear_pointer (&control->priv->headphones_name, g_free); + g_clear_pointer (&control->priv->headsetmic_name, g_free); + g_clear_pointer (&control->priv->headphonemic_name, g_free); + g_clear_pointer (&control->priv->internalspk_name, g_free); + g_clear_pointer (&control->priv->internalmic_name, g_free); +#endif +} + +void +gvc_mixer_control_set_headset_port (GvcMixerControl *control, + guint id, + GvcHeadsetPortChoice choice) +{ + g_return_if_fail (GVC_IS_MIXER_CONTROL (control)); + +#ifdef HAVE_ALSA + switch (choice) { + case GVC_HEADSET_PORT_CHOICE_HEADPHONES: + gvc_mixer_control_set_port_status_for_headset (control, id, control->priv->headphones_name, TRUE); + gvc_mixer_control_set_port_status_for_headset (control, id, control->priv->internalmic_name, FALSE); + break; + case GVC_HEADSET_PORT_CHOICE_HEADSET: + gvc_mixer_control_set_port_status_for_headset (control, id, control->priv->headphones_name, TRUE); + gvc_mixer_control_set_port_status_for_headset (control, id, control->priv->headsetmic_name, FALSE); + break; + case GVC_HEADSET_PORT_CHOICE_MIC: + gvc_mixer_control_set_port_status_for_headset (control, id, control->priv->internalspk_name, TRUE); + gvc_mixer_control_set_port_status_for_headset (control, id, control->priv->headphonemic_name, FALSE); + break; + case GVC_HEADSET_PORT_CHOICE_NONE: + default: + g_assert_not_reached (); + } +#else + g_warning ("BUG: libgnome-volume-control compiled without ALSA support"); +#endif /* HAVE_ALSA */ +} + +#ifdef HAVE_ALSA +typedef struct { + const pa_card_port_info *headphones; + const pa_card_port_info *headsetmic; + const pa_card_port_info *headphonemic; + const pa_card_port_info *internalmic; + const pa_card_port_info *internalspk; +} headset_ports; + +/* + In PulseAudio without ucm, ports will show up with the following names: + Headphones - analog-output-headphones + Headset mic - analog-input-headset-mic (was: analog-input-microphone-headset) + Jack in mic-in mode - analog-input-headphone-mic (was: analog-input-microphone) + + However, since regular mics also show up as analog-input-microphone, + we need to check for certain controls on alsa mixer level too, to know + if we deal with a separate mic jack, or a multi-function jack with a + mic-in mode (also called "headphone mic"). + We check for the following names: + + Headphone Mic Jack - indicates headphone and mic-in mode share the same jack, + i e, not two separate jacks. Hardware cannot distinguish between a + headphone and a mic. + Headset Mic Phantom Jack - indicates headset jack where hardware can not + distinguish between headphones and headsets + Headset Mic Jack - indicates headset jack where hardware can distinguish + between headphones and headsets. There is no use popping up a dialog in + this case, unless we already need to do this for the mic-in mode. + + From the PA_PROCOTOL_VERSION=34, The device_port structure adds 2 members + availability_group and type, with the help of these 2 members, we could + consolidate the port checking and port setting for non-ucm and with-ucm + cases. +*/ + +#define HEADSET_PORT_SET(dst, src) \ + do { \ + if (!(dst) || (dst)->priority < (src)->priority) \ + dst = src; \ + } while (0) + +#define GET_PORT_NAME(x) (x ? g_strdup (x->name) : NULL) + +static headset_ports * +get_headset_ports (GvcMixerControl *control, + const pa_card_info *c) +{ + headset_ports *h; + guint i; + + h = g_new0 (headset_ports, 1); + + for (i = 0; i < c->n_ports; i++) { + pa_card_port_info *p = c->ports[i]; + if (control->priv->server_protocol_version < 34) { + if (g_str_equal (p->name, "analog-output-headphones")) + h->headphones = p; + else if (g_str_equal (p->name, "analog-input-headset-mic")) + h->headsetmic = p; + else if (g_str_equal (p->name, "analog-input-headphone-mic")) + h->headphonemic = p; + else if (g_str_equal (p->name, "analog-input-internal-mic")) + h->internalmic = p; + else if (g_str_equal (p->name, "analog-output-speaker")) + h->internalspk = p; + } else { +#if (PA_PROTOCOL_VERSION >= 34) + /* in the first loop, set only headphones */ + /* the microphone ports are assigned in the second loop */ + if (p->type == PA_DEVICE_PORT_TYPE_HEADPHONES) { + if (p->availability_group) + HEADSET_PORT_SET (h->headphones, p); + } else if (p->type == PA_DEVICE_PORT_TYPE_SPEAKER) { + HEADSET_PORT_SET (h->internalspk, p); + } else if (p->type == PA_DEVICE_PORT_TYPE_MIC) { + if (!p->availability_group) + HEADSET_PORT_SET (h->internalmic, p); + } +#else + g_warning_once ("libgnome-volume-control running against PulseAudio %u, " + "but compiled against older %d, report a bug to your distribution", + control->priv->server_protocol_version, + PA_PROTOCOL_VERSION); +#endif + } + } + +#if (PA_PROTOCOL_VERSION >= 34) + if (h->headphones && (control->priv->server_protocol_version >= 34)) { + for (i = 0; i < c->n_ports; i++) { + pa_card_port_info *p = c->ports[i]; + if (g_strcmp0(h->headphones->availability_group, p->availability_group)) + continue; + if (p->direction != PA_DIRECTION_INPUT) + continue; + if (p->type == PA_DEVICE_PORT_TYPE_HEADSET) + HEADSET_PORT_SET (h->headsetmic, p); + else if (p->type == PA_DEVICE_PORT_TYPE_MIC) + HEADSET_PORT_SET (h->headphonemic, p); + } + } +#endif + + return h; +} + +static gboolean +verify_alsa_card (int cardindex, + gboolean *headsetmic, + gboolean *headphonemic) +{ + char *ctlstr; + snd_hctl_t *hctl; + snd_ctl_elem_id_t *id; + int err; + + *headsetmic = FALSE; + *headphonemic = FALSE; + + ctlstr = g_strdup_printf ("hw:%i", cardindex); + if ((err = snd_hctl_open (&hctl, ctlstr, 0)) < 0) { + g_warning ("snd_hctl_open failed: %s", snd_strerror(err)); + g_free (ctlstr); + return FALSE; + } + g_free (ctlstr); + + if ((err = snd_hctl_load (hctl)) < 0) { + g_warning ("snd_hctl_load failed: %s", snd_strerror(err)); + snd_hctl_close (hctl); + return FALSE; + } + + snd_ctl_elem_id_alloca (&id); + + snd_ctl_elem_id_clear (id); + snd_ctl_elem_id_set_interface (id, SND_CTL_ELEM_IFACE_CARD); + snd_ctl_elem_id_set_name (id, "Headphone Mic Jack"); + if (snd_hctl_find_elem (hctl, id)) + *headphonemic = TRUE; + + snd_ctl_elem_id_clear (id); + snd_ctl_elem_id_set_interface (id, SND_CTL_ELEM_IFACE_CARD); + snd_ctl_elem_id_set_name (id, "Headset Mic Phantom Jack"); + if (snd_hctl_find_elem (hctl, id)) + *headsetmic = TRUE; + + if (*headphonemic) { + snd_ctl_elem_id_clear (id); + snd_ctl_elem_id_set_interface (id, SND_CTL_ELEM_IFACE_CARD); + snd_ctl_elem_id_set_name (id, "Headset Mic Jack"); + if (snd_hctl_find_elem (hctl, id)) + *headsetmic = TRUE; + } + + snd_hctl_close (hctl); + return *headsetmic || *headphonemic; +} + +static void +check_audio_device_selection_needed (GvcMixerControl *control, + const pa_card_info *info) +{ + headset_ports *h; + gboolean start_dialog, stop_dialog; + + start_dialog = FALSE; + stop_dialog = FALSE; + h = get_headset_ports (control, info); + + if (!h->headphones || + (!h->headsetmic && !h->headphonemic)) { + /* Not a headset jack */ + goto out; + } + + if (control->priv->headset_card != (int) info->index) { + int cardindex; + gboolean hsmic = TRUE; + gboolean hpmic = TRUE; + const char *s; + + s = pa_proplist_gets (info->proplist, "alsa.card"); + if (!s) + goto out; + + cardindex = strtol (s, NULL, 10); + if (cardindex == 0 && strcmp(s, "0") != 0) + goto out; + + if (control->priv->server_protocol_version < 34) { + if (!verify_alsa_card(cardindex, &hsmic, &hpmic)) + goto out; + } + + control->priv->headset_card = info->index; + control->priv->has_headsetmic = hsmic && h->headsetmic; + control->priv->has_headphonemic = hpmic && h->headphonemic; + } else { + start_dialog = (h->headphones->available != PA_PORT_AVAILABLE_NO) && !control->priv->headset_plugged_in; + stop_dialog = (h->headphones->available == PA_PORT_AVAILABLE_NO) && control->priv->headset_plugged_in; + } + + control->priv->headset_plugged_in = h->headphones->available != PA_PORT_AVAILABLE_NO; + free_priv_port_names (control); + control->priv->headphones_name = GET_PORT_NAME(h->headphones); + control->priv->headsetmic_name = GET_PORT_NAME(h->headsetmic); + control->priv->headphonemic_name = GET_PORT_NAME(h->headphonemic); + control->priv->internalspk_name = GET_PORT_NAME(h->internalspk); + control->priv->internalmic_name = GET_PORT_NAME(h->internalmic); + + if (!start_dialog && + !stop_dialog) + goto out; + + if (stop_dialog) { + g_signal_emit (G_OBJECT (control), + signals[AUDIO_DEVICE_SELECTION_NEEDED], + 0, + info->index, + FALSE, + GVC_HEADSET_PORT_CHOICE_NONE); + } else { + GvcHeadsetPortChoice choices; + + choices = GVC_HEADSET_PORT_CHOICE_HEADPHONES; + if (control->priv->has_headsetmic) + choices |= GVC_HEADSET_PORT_CHOICE_HEADSET; + if (control->priv->has_headphonemic) + choices |= GVC_HEADSET_PORT_CHOICE_MIC; + + g_signal_emit (G_OBJECT (control), + signals[AUDIO_DEVICE_SELECTION_NEEDED], + 0, + info->index, + TRUE, + choices); + } + +out: + g_free (h); +} +#endif /* HAVE_ALSA */ + +/* + * At this point we can determine all devices available to us (besides network 'ports') + * This is done by the following: + * + * - gvc_mixer_card and gvc_mixer_card_ports are created and relevant setters are called. + * - If it's a 'normal' card with ports it will create a new ui-device or + * synchronise port availability with the existing device cached for that port on this card. */ + +static void +update_card (GvcMixerControl *control, + const pa_card_info *info) +{ + const GList *m = NULL; + GvcMixerCard *card; + gboolean is_new = FALSE; + GList *profile_list = NULL; + GList *old_ports; +#if 1 + guint i; + const char *key; + void *state; + + g_debug ("Updating card %s (index: %u driver: %s):", + info->name, info->index, info->driver); + + for (i = 0; i < info->n_profiles; i++) { + struct pa_card_profile_info pi = info->profiles[i]; + gboolean is_default; + + is_default = (g_strcmp0 (pi.name, info->active_profile->name) == 0); + g_debug ("\tProfile '%s': %d sources %d sinks%s", + pi.name, pi.n_sources, pi.n_sinks, + is_default ? " (Current)" : ""); + } + state = NULL; + key = pa_proplist_iterate (info->proplist, &state); + while (key != NULL) { + g_debug ("\tProperty: '%s' = '%s'", + key, pa_proplist_gets (info->proplist, key)); + key = pa_proplist_iterate (info->proplist, &state); + } +#endif + card = g_hash_table_lookup (control->priv->cards, + GUINT_TO_POINTER (info->index)); + if (card == NULL) { + card = gvc_mixer_card_new (control->priv->pa_context, + info->index); + is_new = TRUE; + } + + for (i = 0; i < info->n_profiles; i++) { + GvcMixerCardProfile *profile; + struct pa_card_profile_info pi = info->profiles[i]; + + profile = g_new0 (GvcMixerCardProfile, 1); + profile->profile = g_strdup (pi.name); + profile->human_profile = g_strdup (pi.description); + profile->status = card_num_streams_to_status (pi.n_sinks, pi.n_sources); + profile->n_sinks = pi.n_sinks; + profile->n_sources = pi.n_sources; + profile->priority = pi.priority; + profile_list = g_list_prepend (profile_list, profile); + } + + gvc_mixer_card_set_profiles (card, profile_list); + gvc_mixer_card_set_name (card, pa_proplist_gets (info->proplist, "device.description")); + gvc_mixer_card_set_icon_name (card, pa_proplist_gets (info->proplist, "device.icon_name")); + gvc_mixer_card_set_profile (card, info->active_profile->name); + + if (is_new) { + g_hash_table_insert (control->priv->cards, + GUINT_TO_POINTER (info->index), + card); + } + + old_ports = g_list_copy ((GList *)gvc_mixer_card_get_ports (card)); + for (m = old_ports; m; m = m->next) { + GvcMixerCardPort *card_port = m->data; + gboolean found = FALSE; + + for (i = 0; i < info->n_ports; i++) { + pa_card_port_info *port = info->ports[i]; + + if (g_strcmp0 (card_port->port, port->name) == 0) + found = TRUE; + } + + if (!found) { + update_ui_device_on_port_removed (control, card_port, card); + gvc_mixer_card_remove_port (card, card_port); + } + } + g_clear_pointer (&old_ports, g_list_free); + + for (i = 0; i < info->n_ports; i++) { + pa_card_port_info *port = info->ports[i]; + gboolean found = FALSE; + + for (m = gvc_mixer_card_get_ports (card); m; m = m->next) { + GvcMixerCardPort *card_port = m->data; + + if (g_strcmp0 (card_port->port, port->name) == 0) { + found = TRUE; + update_ui_device_on_port_changed (control, card_port, port, card); + } + } + + if (!found) { + GvcMixerCardPort *card_port; + + card_port = g_new0 (GvcMixerCardPort, 1); + card_port->port = g_strdup (port->name); + card_port->human_port = g_strdup (port->description); + card_port->priority = port->priority; + card_port->available = port->available; + card_port->direction = port->direction; + card_port->icon_name = g_strdup (pa_proplist_gets (port->proplist, "device.icon_name")); + card_port->profiles = determine_profiles_for_port (port, profile_list); + + gvc_mixer_card_add_port (card, card_port); + update_ui_device_on_port_added (control, card_port, card); + } + } + +#ifdef HAVE_ALSA + check_audio_device_selection_needed (control, info); +#endif /* HAVE_ALSA */ + + g_signal_emit (G_OBJECT (control), + signals[CARD_ADDED], + 0, + info->index); +} + +static void +_pa_context_get_sink_info_cb (pa_context *context, + const pa_sink_info *i, + int eol, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + + if (eol < 0) { + if (pa_context_errno (context) == PA_ERR_NOENTITY) { + return; + } + + g_warning ("Sink callback failure"); + return; + } + + if (eol > 0) { + dec_outstanding (control); + return; + } + + update_sink (control, i); +} + +static void +_pa_context_get_source_info_cb (pa_context *context, + const pa_source_info *i, + int eol, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + + if (eol < 0) { + if (pa_context_errno (context) == PA_ERR_NOENTITY) { + return; + } + + g_warning ("Source callback failure"); + return; + } + + if (eol > 0) { + dec_outstanding (control); + return; + } + + update_source (control, i); +} + +static void +_pa_context_get_sink_input_info_cb (pa_context *context, + const pa_sink_input_info *i, + int eol, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + + if (eol < 0) { + if (pa_context_errno (context) == PA_ERR_NOENTITY) { + return; + } + + g_warning ("Sink input callback failure"); + return; + } + + if (eol > 0) { + dec_outstanding (control); + return; + } + + update_sink_input (control, i); +} + +static void +_pa_context_get_source_output_info_cb (pa_context *context, + const pa_source_output_info *i, + int eol, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + + if (eol < 0) { + if (pa_context_errno (context) == PA_ERR_NOENTITY) { + return; + } + + g_warning ("Source output callback failure"); + return; + } + + if (eol > 0) { + dec_outstanding (control); + return; + } + + update_source_output (control, i); +} + +static void +_pa_context_get_client_info_cb (pa_context *context, + const pa_client_info *i, + int eol, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + + if (eol < 0) { + if (pa_context_errno (context) == PA_ERR_NOENTITY) { + return; + } + + g_warning ("Client callback failure"); + return; + } + + if (eol > 0) { + dec_outstanding (control); + return; + } + + update_client (control, i); +} + +static void +_pa_context_get_card_info_by_index_cb (pa_context *context, + const pa_card_info *i, + int eol, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + + if (eol < 0) { + if (pa_context_errno (context) == PA_ERR_NOENTITY) + return; + + g_warning ("Card callback failure"); + return; + } + + if (eol > 0) { + dec_outstanding (control); + return; + } + + update_card (control, i); +} + +static void +_pa_context_get_server_info_cb (pa_context *context, + const pa_server_info *i, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + + if (i == NULL) { + g_warning ("Server info callback failure"); + return; + } + g_debug ("get server info"); + update_server (control, i); + dec_outstanding (control); +} + +static void +remove_event_role_stream (GvcMixerControl *control) +{ + g_debug ("Removing event role"); +} + +static void +update_event_role_stream (GvcMixerControl *control, + const pa_ext_stream_restore_info *info) +{ + GvcMixerStream *stream; + gboolean is_new; + pa_volume_t max_volume; + + if (strcmp (info->name, "sink-input-by-media-role:event") != 0) { + return; + } + +#if 0 + g_debug ("Updating event role: name='%s' device='%s'", + info->name, + info->device); +#endif + + is_new = FALSE; + + if (!control->priv->event_sink_input_is_set) { + pa_channel_map pa_map; + GvcChannelMap *map; + + pa_map.channels = 1; + pa_map.map[0] = PA_CHANNEL_POSITION_MONO; + map = gvc_channel_map_new_from_pa_channel_map (&pa_map); + + stream = gvc_mixer_event_role_new (control->priv->pa_context, + info->device, + map); + control->priv->event_sink_input_id = gvc_mixer_stream_get_id (stream); + control->priv->event_sink_input_is_set = TRUE; + + is_new = TRUE; + } else { + stream = g_hash_table_lookup (control->priv->all_streams, + GUINT_TO_POINTER (control->priv->event_sink_input_id)); + } + + /* 0 channels here means there is no valid volume in + * pa_ext_stream_restore_info() and in the saved stream entry of + * module-stream-restore in PulseAudio. */ + if (info->volume.channels == 0) + max_volume = PA_VOLUME_NORM; + else + max_volume = pa_cvolume_max (&info->volume); + + gvc_mixer_stream_set_name (stream, _("System Sounds")); + gvc_mixer_stream_set_icon_name (stream, "audio-x-generic"); + gvc_mixer_stream_set_volume (stream, (guint)max_volume); + gvc_mixer_stream_set_is_muted (stream, info->mute); + + if (is_new) { + add_stream (control, stream); + } +} + +static void +_pa_ext_stream_restore_read_cb (pa_context *context, + const pa_ext_stream_restore_info *i, + int eol, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + + if (eol < 0) { + g_debug ("Failed to initialized stream_restore extension: %s", + pa_strerror (pa_context_errno (context))); + remove_event_role_stream (control); + return; + } + + if (eol > 0) { + dec_outstanding (control); + /* If we don't have an event stream to restore, then + * set one up with a default 100% volume */ + if (!control->priv->event_sink_input_is_set) { + pa_ext_stream_restore_info info; + + memset (&info, 0, sizeof(info)); + info.name = "sink-input-by-media-role:event"; + info.volume.channels = 1; + info.volume.values[0] = PA_VOLUME_NORM; + update_event_role_stream (control, &info); + } + return; + } + + update_event_role_stream (control, i); +} + +static void +_pa_ext_stream_restore_subscribe_cb (pa_context *context, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + pa_operation *o; + + o = pa_ext_stream_restore_read (context, + _pa_ext_stream_restore_read_cb, + control); + if (o == NULL) { + g_warning ("pa_ext_stream_restore_read() failed"); + return; + } + + pa_operation_unref (o); +} + +static void +req_update_server_info (GvcMixerControl *control, + int index) +{ + pa_operation *o; + + o = pa_context_get_server_info (control->priv->pa_context, + _pa_context_get_server_info_cb, + control); + if (o == NULL) { + g_warning ("pa_context_get_server_info() failed"); + return; + } + pa_operation_unref (o); +} + +static void +req_update_client_info (GvcMixerControl *control, + int index) +{ + pa_operation *o; + + if (index < 0) { + o = pa_context_get_client_info_list (control->priv->pa_context, + _pa_context_get_client_info_cb, + control); + } else { + o = pa_context_get_client_info (control->priv->pa_context, + index, + _pa_context_get_client_info_cb, + control); + } + + if (o == NULL) { + g_warning ("pa_context_client_info_list() failed"); + return; + } + pa_operation_unref (o); +} + +static void +req_update_card (GvcMixerControl *control, + int index) +{ + pa_operation *o; + + if (index < 0) { + o = pa_context_get_card_info_list (control->priv->pa_context, + _pa_context_get_card_info_by_index_cb, + control); + } else { + o = pa_context_get_card_info_by_index (control->priv->pa_context, + index, + _pa_context_get_card_info_by_index_cb, + control); + } + + if (o == NULL) { + g_warning ("pa_context_get_card_info_by_index() failed"); + return; + } + pa_operation_unref (o); +} + +static void +req_update_sink_info (GvcMixerControl *control, + int index) +{ + pa_operation *o; + + if (index < 0) { + o = pa_context_get_sink_info_list (control->priv->pa_context, + _pa_context_get_sink_info_cb, + control); + } else { + o = pa_context_get_sink_info_by_index (control->priv->pa_context, + index, + _pa_context_get_sink_info_cb, + control); + } + + if (o == NULL) { + g_warning ("pa_context_get_sink_info_list() failed"); + return; + } + pa_operation_unref (o); +} + +static void +req_update_source_info (GvcMixerControl *control, + int index) +{ + pa_operation *o; + + if (index < 0) { + o = pa_context_get_source_info_list (control->priv->pa_context, + _pa_context_get_source_info_cb, + control); + } else { + o = pa_context_get_source_info_by_index(control->priv->pa_context, + index, + _pa_context_get_source_info_cb, + control); + } + + if (o == NULL) { + g_warning ("pa_context_get_source_info_list() failed"); + return; + } + pa_operation_unref (o); +} + +static void +req_update_sink_input_info (GvcMixerControl *control, + int index) +{ + pa_operation *o; + + if (index < 0) { + o = pa_context_get_sink_input_info_list (control->priv->pa_context, + _pa_context_get_sink_input_info_cb, + control); + } else { + o = pa_context_get_sink_input_info (control->priv->pa_context, + index, + _pa_context_get_sink_input_info_cb, + control); + } + + if (o == NULL) { + g_warning ("pa_context_get_sink_input_info_list() failed"); + return; + } + pa_operation_unref (o); +} + +static void +req_update_source_output_info (GvcMixerControl *control, + int index) +{ + pa_operation *o; + + if (index < 0) { + o = pa_context_get_source_output_info_list (control->priv->pa_context, + _pa_context_get_source_output_info_cb, + control); + } else { + o = pa_context_get_source_output_info (control->priv->pa_context, + index, + _pa_context_get_source_output_info_cb, + control); + } + + if (o == NULL) { + g_warning ("pa_context_get_source_output_info_list() failed"); + return; + } + pa_operation_unref (o); +} + +static void +remove_client (GvcMixerControl *control, + guint index) +{ + g_hash_table_remove (control->priv->clients, + GUINT_TO_POINTER (index)); +} + +static void +remove_card (GvcMixerControl *control, + guint index) +{ + + GList *devices, *d; + + devices = g_list_concat (g_hash_table_get_values (control->priv->ui_inputs), + g_hash_table_get_values (control->priv->ui_outputs)); + + for (d = devices; d != NULL; d = d->next) { + GvcMixerCard *card; + GvcMixerUIDevice *device = d->data; + + g_object_get (G_OBJECT (device), "card", &card, NULL); + + if (card == NULL) + continue; + + if (gvc_mixer_card_get_index (card) == index) { + g_signal_emit (G_OBJECT (control), + signals[gvc_mixer_ui_device_is_output (device) ? OUTPUT_REMOVED : INPUT_REMOVED], + 0, + gvc_mixer_ui_device_get_id (device)); + g_debug ("Card removal remove device %s", + gvc_mixer_ui_device_get_description (device)); + g_hash_table_remove (gvc_mixer_ui_device_is_output (device) ? control->priv->ui_outputs : control->priv->ui_inputs, + GUINT_TO_POINTER (gvc_mixer_ui_device_get_id (device))); + } + } + + g_list_free (devices); + + g_hash_table_remove (control->priv->cards, + GUINT_TO_POINTER (index)); + + g_signal_emit (G_OBJECT (control), + signals[CARD_REMOVED], + 0, + index); +} + +static void +remove_sink (GvcMixerControl *control, + guint index) +{ + GvcMixerStream *stream; + GvcMixerUIDevice *device; + + g_debug ("Removing sink: index=%u", index); + + stream = g_hash_table_lookup (control->priv->sinks, + GUINT_TO_POINTER (index)); + if (stream == NULL) + return; + + device = gvc_mixer_control_lookup_device_from_stream (control, stream); + + if (device != NULL) { + gvc_mixer_ui_device_invalidate_stream (device); + if (!gvc_mixer_ui_device_has_ports (device)) { + g_signal_emit (G_OBJECT (control), + signals[OUTPUT_REMOVED], + 0, + gvc_mixer_ui_device_get_id (device)); + } else { + GList *devices, *d; + + devices = g_hash_table_get_values (control->priv->ui_outputs); + + for (d = devices; d != NULL; d = d->next) { + guint stream_id = GVC_MIXER_UI_DEVICE_INVALID; + device = d->data; + g_object_get (G_OBJECT (device), + "stream-id", &stream_id, + NULL); + if (stream_id == gvc_mixer_stream_get_id (stream)) + gvc_mixer_ui_device_invalidate_stream (device); + } + + g_list_free (devices); + } + } + + g_hash_table_remove (control->priv->sinks, + GUINT_TO_POINTER (index)); + + remove_stream (control, stream); +} + +static void +remove_source (GvcMixerControl *control, + guint index) +{ + GvcMixerStream *stream; + GvcMixerUIDevice *device; + + g_debug ("Removing source: index=%u", index); + + stream = g_hash_table_lookup (control->priv->sources, + GUINT_TO_POINTER (index)); + if (stream == NULL) + return; + + device = gvc_mixer_control_lookup_device_from_stream (control, stream); + + if (device != NULL) { + gvc_mixer_ui_device_invalidate_stream (device); + if (!gvc_mixer_ui_device_has_ports (device)) { + g_signal_emit (G_OBJECT (control), + signals[INPUT_REMOVED], + 0, + gvc_mixer_ui_device_get_id (device)); + } else { + GList *devices, *d; + + devices = g_hash_table_get_values (control->priv->ui_inputs); + + for (d = devices; d != NULL; d = d->next) { + guint stream_id = GVC_MIXER_UI_DEVICE_INVALID; + device = d->data; + g_object_get (G_OBJECT (device), + "stream-id", &stream_id, + NULL); + if (stream_id == gvc_mixer_stream_get_id (stream)) + gvc_mixer_ui_device_invalidate_stream (device); + } + + g_list_free (devices); + } + } + + g_hash_table_remove (control->priv->sources, + GUINT_TO_POINTER (index)); + + remove_stream (control, stream); +} + +static void +remove_sink_input (GvcMixerControl *control, + guint index) +{ + GvcMixerStream *stream; + + g_debug ("Removing sink input: index=%u", index); + + stream = g_hash_table_lookup (control->priv->sink_inputs, + GUINT_TO_POINTER (index)); + if (stream == NULL) { + return; + } + g_hash_table_remove (control->priv->sink_inputs, + GUINT_TO_POINTER (index)); + + remove_stream (control, stream); +} + +static void +remove_source_output (GvcMixerControl *control, + guint index) +{ + GvcMixerStream *stream; + + g_debug ("Removing source output: index=%u", index); + + stream = g_hash_table_lookup (control->priv->source_outputs, + GUINT_TO_POINTER (index)); + if (stream == NULL) { + return; + } + g_hash_table_remove (control->priv->source_outputs, + GUINT_TO_POINTER (index)); + + remove_stream (control, stream); +} + +static void +_pa_context_subscribe_cb (pa_context *context, + pa_subscription_event_type_t t, + uint32_t index, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + + switch (t & PA_SUBSCRIPTION_EVENT_FACILITY_MASK) { + case PA_SUBSCRIPTION_EVENT_SINK: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + remove_sink (control, index); + } else { + req_update_sink_info (control, index); + } + break; + + case PA_SUBSCRIPTION_EVENT_SOURCE: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + remove_source (control, index); + } else { + req_update_source_info (control, index); + } + break; + + case PA_SUBSCRIPTION_EVENT_SINK_INPUT: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + remove_sink_input (control, index); + } else { + req_update_sink_input_info (control, index); + } + break; + + case PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + remove_source_output (control, index); + } else { + req_update_source_output_info (control, index); + } + break; + + case PA_SUBSCRIPTION_EVENT_CLIENT: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + remove_client (control, index); + } else { + req_update_client_info (control, index); + } + break; + + case PA_SUBSCRIPTION_EVENT_SERVER: + req_update_server_info (control, index); + break; + + case PA_SUBSCRIPTION_EVENT_CARD: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + remove_card (control, index); + } else { + req_update_card (control, index); + } + break; + default: + break; + } +} + +static void +gvc_mixer_control_ready (GvcMixerControl *control) +{ + pa_operation *o; + + pa_context_set_subscribe_callback (control->priv->pa_context, + _pa_context_subscribe_cb, + control); + o = pa_context_subscribe (control->priv->pa_context, + (pa_subscription_mask_t) + (PA_SUBSCRIPTION_MASK_SINK| + PA_SUBSCRIPTION_MASK_SOURCE| + PA_SUBSCRIPTION_MASK_SINK_INPUT| + PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT| + PA_SUBSCRIPTION_MASK_CLIENT| + PA_SUBSCRIPTION_MASK_SERVER| + PA_SUBSCRIPTION_MASK_CARD), + NULL, + NULL); + + if (o == NULL) { + g_warning ("pa_context_subscribe() failed"); + return; + } + pa_operation_unref (o); + + req_update_server_info (control, -1); + req_update_card (control, -1); + req_update_client_info (control, -1); + req_update_sink_info (control, -1); + req_update_source_info (control, -1); + req_update_sink_input_info (control, -1); + req_update_source_output_info (control, -1); + + control->priv->server_protocol_version = pa_context_get_server_protocol_version (control->priv->pa_context); + + control->priv->n_outstanding = 6; + + /* This call is not always supported */ + o = pa_ext_stream_restore_read (control->priv->pa_context, + _pa_ext_stream_restore_read_cb, + control); + if (o != NULL) { + pa_operation_unref (o); + control->priv->n_outstanding++; + + pa_ext_stream_restore_set_subscribe_cb (control->priv->pa_context, + _pa_ext_stream_restore_subscribe_cb, + control); + + o = pa_ext_stream_restore_subscribe (control->priv->pa_context, + 1, + NULL, + NULL); + if (o != NULL) { + pa_operation_unref (o); + } + + } else { + g_debug ("Failed to initialized stream_restore extension: %s", + pa_strerror (pa_context_errno (control->priv->pa_context))); + } +} + +static void +gvc_mixer_new_pa_context (GvcMixerControl *self) +{ + pa_proplist *proplist; + + g_return_if_fail (self); + g_return_if_fail (!self->priv->pa_context); + + proplist = pa_proplist_new (); + pa_proplist_sets (proplist, + PA_PROP_APPLICATION_NAME, + self->priv->name); + pa_proplist_sets (proplist, + PA_PROP_APPLICATION_ID, + "org.gnome.VolumeControl"); + pa_proplist_sets (proplist, + PA_PROP_APPLICATION_ICON_NAME, + "multimedia-volume-control"); + pa_proplist_sets (proplist, + PA_PROP_APPLICATION_VERSION, + PACKAGE_VERSION); + + self->priv->pa_context = pa_context_new_with_proplist (self->priv->pa_api, NULL, proplist); + + pa_proplist_free (proplist); + g_assert (self->priv->pa_context); +} + +static void +remove_all_items (GvcMixerControl *control, + GHashTable *hash_table, + void (*remove_item)(GvcMixerControl *control, guint index)) +{ + GHashTableIter iter; + gpointer key, value; + + g_hash_table_iter_init (&iter, hash_table); + while (g_hash_table_iter_next (&iter, &key, &value)) { + if (remove_item) { + remove_item (control, GPOINTER_TO_UINT (key)); + g_hash_table_remove (hash_table, key); + g_hash_table_iter_init (&iter, hash_table); + } else { + g_hash_table_iter_remove (&iter); + } + } +} + +static gboolean +idle_reconnect (gpointer data) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (data); + + g_return_val_if_fail (control, FALSE); + + g_debug ("Reconnect: clean up all objects"); + + remove_all_items (control, control->priv->sinks, remove_sink); + remove_all_items (control, control->priv->sources, remove_source); + remove_all_items (control, control->priv->sink_inputs, remove_sink_input); + remove_all_items (control, control->priv->source_outputs, remove_source_output); + remove_all_items (control, control->priv->cards, remove_card); + remove_all_items (control, control->priv->ui_inputs, NULL); + remove_all_items (control, control->priv->ui_outputs, NULL); + remove_all_items (control, control->priv->clients, remove_client); + + g_debug ("Reconnect: make new connection"); + + if (control->priv->pa_context) { + pa_context_unref (control->priv->pa_context); + control->priv->pa_context = NULL; + control->priv->server_protocol_version = 0; + gvc_mixer_new_pa_context (control); + } + + gvc_mixer_control_open (control); /* cannot fail */ + + control->priv->reconnect_id = 0; + return FALSE; +} + +static void +_pa_context_state_cb (pa_context *context, + void *userdata) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (userdata); + + switch (pa_context_get_state (context)) { + case PA_CONTEXT_UNCONNECTED: + case PA_CONTEXT_CONNECTING: + case PA_CONTEXT_AUTHORIZING: + case PA_CONTEXT_SETTING_NAME: + break; + + case PA_CONTEXT_READY: + gvc_mixer_control_ready (control); + break; + + case PA_CONTEXT_FAILED: + control->priv->state = GVC_STATE_FAILED; + g_signal_emit (control, signals[STATE_CHANGED], 0, GVC_STATE_FAILED); + if (control->priv->reconnect_id == 0) + control->priv->reconnect_id = g_timeout_add_seconds (RECONNECT_DELAY, idle_reconnect, control); + break; + + case PA_CONTEXT_TERMINATED: + default: + /* FIXME: */ + break; + } +} + +gboolean +gvc_mixer_control_open (GvcMixerControl *control) +{ + int res; + + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), FALSE); + g_return_val_if_fail (control->priv->pa_context != NULL, FALSE); + g_return_val_if_fail (pa_context_get_state (control->priv->pa_context) == PA_CONTEXT_UNCONNECTED, FALSE); + + pa_context_set_state_callback (control->priv->pa_context, + _pa_context_state_cb, + control); + + control->priv->state = GVC_STATE_CONNECTING; + g_signal_emit (G_OBJECT (control), signals[STATE_CHANGED], 0, GVC_STATE_CONNECTING); + res = pa_context_connect (control->priv->pa_context, NULL, (pa_context_flags_t) PA_CONTEXT_NOFAIL, NULL); + if (res < 0) { + g_warning ("Failed to connect context: %s", + pa_strerror (pa_context_errno (control->priv->pa_context))); + } + + return res; +} + +gboolean +gvc_mixer_control_close (GvcMixerControl *control) +{ + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), FALSE); + g_return_val_if_fail (control->priv->pa_context != NULL, FALSE); + + pa_context_disconnect (control->priv->pa_context); + + control->priv->state = GVC_STATE_CLOSED; + g_signal_emit (G_OBJECT (control), signals[STATE_CHANGED], 0, GVC_STATE_CLOSED); + return TRUE; +} + +static void +gvc_mixer_control_dispose (GObject *object) +{ + GvcMixerControl *control = GVC_MIXER_CONTROL (object); + + if (control->priv->reconnect_id != 0) { + g_source_remove (control->priv->reconnect_id); + control->priv->reconnect_id = 0; + } + + if (control->priv->pa_context != NULL) { + pa_context_unref (control->priv->pa_context); + control->priv->pa_context = NULL; + } + + if (control->priv->default_source_name != NULL) { + g_free (control->priv->default_source_name); + control->priv->default_source_name = NULL; + } + if (control->priv->default_sink_name != NULL) { + g_free (control->priv->default_sink_name); + control->priv->default_sink_name = NULL; + } + + if (control->priv->pa_mainloop != NULL) { + pa_glib_mainloop_free (control->priv->pa_mainloop); + control->priv->pa_mainloop = NULL; + } + + if (control->priv->all_streams != NULL) { + g_hash_table_destroy (control->priv->all_streams); + control->priv->all_streams = NULL; + } + + if (control->priv->sinks != NULL) { + g_hash_table_destroy (control->priv->sinks); + control->priv->sinks = NULL; + } + if (control->priv->sources != NULL) { + g_hash_table_destroy (control->priv->sources); + control->priv->sources = NULL; + } + if (control->priv->sink_inputs != NULL) { + g_hash_table_destroy (control->priv->sink_inputs); + control->priv->sink_inputs = NULL; + } + if (control->priv->source_outputs != NULL) { + g_hash_table_destroy (control->priv->source_outputs); + control->priv->source_outputs = NULL; + } + if (control->priv->clients != NULL) { + g_hash_table_destroy (control->priv->clients); + control->priv->clients = NULL; + } + if (control->priv->cards != NULL) { + g_hash_table_destroy (control->priv->cards); + control->priv->cards = NULL; + } + if (control->priv->ui_outputs != NULL) { + g_hash_table_destroy (control->priv->ui_outputs); + control->priv->ui_outputs = NULL; + } + if (control->priv->ui_inputs != NULL) { + g_hash_table_destroy (control->priv->ui_inputs); + control->priv->ui_inputs = NULL; + } + + free_priv_port_names (control); + G_OBJECT_CLASS (gvc_mixer_control_parent_class)->dispose (object); +} + +static void +gvc_mixer_control_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GvcMixerControl *self = GVC_MIXER_CONTROL (object); + + switch (prop_id) { + case PROP_NAME: + g_free (self->priv->name); + self->priv->name = g_value_dup_string (value); + g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_NAME]); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gvc_mixer_control_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GvcMixerControl *self = GVC_MIXER_CONTROL (object); + + switch (prop_id) { + case PROP_NAME: + g_value_set_string (value, self->priv->name); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + + +static GObject * +gvc_mixer_control_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_params) +{ + GObject *object; + GvcMixerControl *self; + + object = G_OBJECT_CLASS (gvc_mixer_control_parent_class)->constructor (type, n_construct_properties, construct_params); + + self = GVC_MIXER_CONTROL (object); + + gvc_mixer_new_pa_context (self); + self->priv->profile_swapping_device_id = GVC_MIXER_UI_DEVICE_INVALID; + + return object; +} + +static void +gvc_mixer_control_class_init (GvcMixerControlClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->constructor = gvc_mixer_control_constructor; + object_class->dispose = gvc_mixer_control_dispose; + object_class->finalize = gvc_mixer_control_finalize; + object_class->set_property = gvc_mixer_control_set_property; + object_class->get_property = gvc_mixer_control_get_property; + + obj_props[PROP_NAME] = g_param_spec_string ("name", + "Name", + "Name to display for this mixer control", + NULL, + G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY|G_PARAM_STATIC_STRINGS); + g_object_class_install_properties (object_class, N_PROPS, obj_props); + + signals [STATE_CHANGED] = + g_signal_new ("state-changed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, state_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [STREAM_ADDED] = + g_signal_new ("stream-added", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, stream_added), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [STREAM_REMOVED] = + g_signal_new ("stream-removed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, stream_removed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [STREAM_CHANGED] = + g_signal_new ("stream-changed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, stream_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [AUDIO_DEVICE_SELECTION_NEEDED] = + g_signal_new ("audio-device-selection-needed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_BOOLEAN, G_TYPE_UINT); + signals [CARD_ADDED] = + g_signal_new ("card-added", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, card_added), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [CARD_REMOVED] = + g_signal_new ("card-removed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, card_removed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [DEFAULT_SINK_CHANGED] = + g_signal_new ("default-sink-changed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, default_sink_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [DEFAULT_SOURCE_CHANGED] = + g_signal_new ("default-source-changed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, default_source_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [ACTIVE_OUTPUT_UPDATE] = + g_signal_new ("active-output-update", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, active_output_update), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [ACTIVE_INPUT_UPDATE] = + g_signal_new ("active-input-update", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, active_input_update), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [OUTPUT_ADDED] = + g_signal_new ("output-added", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, output_added), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [INPUT_ADDED] = + g_signal_new ("input-added", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, input_added), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [OUTPUT_REMOVED] = + g_signal_new ("output-removed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, output_removed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); + signals [INPUT_REMOVED] = + g_signal_new ("input-removed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GvcMixerControlClass, input_removed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); +} + + +static void +gvc_mixer_control_init (GvcMixerControl *control) +{ + control->priv = gvc_mixer_control_get_instance_private (control); + + control->priv->pa_mainloop = pa_glib_mainloop_new (g_main_context_default ()); + g_assert (control->priv->pa_mainloop); + + control->priv->pa_api = pa_glib_mainloop_get_api (control->priv->pa_mainloop); + g_assert (control->priv->pa_api); + + control->priv->all_streams = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)g_object_unref); + control->priv->sinks = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)g_object_unref); + control->priv->sources = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)g_object_unref); + control->priv->sink_inputs = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)g_object_unref); + control->priv->source_outputs = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)g_object_unref); + control->priv->cards = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)g_object_unref); + control->priv->ui_outputs = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)g_object_unref); + control->priv->ui_inputs = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)g_object_unref); + + control->priv->clients = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)g_free); + +#ifdef HAVE_ALSA + control->priv->headset_card = -1; +#endif /* HAVE_ALSA */ + + control->priv->state = GVC_STATE_CLOSED; +} + +static void +gvc_mixer_control_finalize (GObject *object) +{ + GvcMixerControl *mixer_control; + + g_return_if_fail (object != NULL); + g_return_if_fail (GVC_IS_MIXER_CONTROL (object)); + + mixer_control = GVC_MIXER_CONTROL (object); + g_free (mixer_control->priv->name); + mixer_control->priv->name = NULL; + + g_return_if_fail (mixer_control->priv != NULL); + G_OBJECT_CLASS (gvc_mixer_control_parent_class)->finalize (object); +} + +GvcMixerControl * +gvc_mixer_control_new (const char *name) +{ + GObject *control; + control = g_object_new (GVC_TYPE_MIXER_CONTROL, + "name", name, + NULL); + return GVC_MIXER_CONTROL (control); +} + +gdouble +gvc_mixer_control_get_vol_max_norm (GvcMixerControl *control) +{ + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), 0); + return (gdouble) PA_VOLUME_NORM; +} + +gdouble +gvc_mixer_control_get_vol_max_amplified (GvcMixerControl *control) +{ + g_return_val_if_fail (GVC_IS_MIXER_CONTROL (control), 0); + return (gdouble) PA_VOLUME_UI_MAX; +}